乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      《笨辦法學(xué)Python》 第38課手記

       一利陽(yáng)光故事會(huì) 2020-02-24

      原創(chuàng) 從流域到海域 最后發(fā)布于2016-02-13 10:53:01 

      發(fā)布于2016-02-13 10:53:01
      版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明。

      《笨辦法學(xué)Python》 第38課手記

      注意這是第三版的《笨辦法學(xué)Python》的內(nèi)容,我后來(lái)發(fā)現(xiàn)第三版存在很大的問(wèn)題,就放棄了第三版開(kāi)始使用第四版,第四版的第38課是讀代碼,這里保留之前的手記,因?yàn)樗鼈兪怯袃r(jià)值。

      不在寫(xiě)第四課的手記,因?yàn)槭亲x代碼課。但是之后的課程手記全部是針對(duì)第四版的,第三版棄之不用了。

      本節(jié)課內(nèi)容較多,可以慢慢理解,雖然標(biāo)題是列表,但實(shí)際其實(shí)是一種叫做字典(dict)的數(shù)據(jù)結(jié)構(gòu)。

      列表是有序排列的一些物件,而字典是將一些物件(keys)對(duì)應(yīng)到另外一些物件(values) 的數(shù)據(jù)結(jié)構(gòu)。這句話出自39課的常見(jiàn)問(wèn)題解答。

      原代碼如下(縮進(jìn)統(tǒng)一使用四個(gè)空格):

      # create a mapping of state to abbreviation
      states = {
          'Oregon': 'OR',
          'Florida': 'FL',
          'California': 'CA',
          'New York': 'NY',
          'Michigan': 'MI',   
      }
      
      # create a basic set of states and some cities in them
      cities = {
          'CA': 'San Francisco',
          'MI': 'Detroit',
          'FL': 'Jacksonville'
      }
      
      # add some more cities
      cities['NY'] = 'New York'
      cities['OR'] = 'Portland'
      
      # print out some cities
      print '-' * 10
      print "NY State has: ", cities['NY']
      print "OR State has: ", cities['OR']
      
      # print some states
      print '-' * 10
      print "Michigan's abbreviation is: ", states['Michigan']
      print "Florida's abbreviation is: ", states['Florida']
      
      # do it by using the states then cities dict
      print '-' * 10
      print "Michigan has: ", cities[states['Michigan']]
      print "Florida has: ", cities[states['Florida']]
      
      
      # print every state abbreviation
      print '-' * 10
      for state, abbrev in states.items():
          print "%s is abbreviated %s" % (state, abbrev)
      
      # print every city in state
      print '-' * 10
      for abbrev, city in cities.items():
          print "%s has the city %s" % (abbrev, city)
      
      # now do both at the same time
      print '-' * 10
      for state, abbrev in states.items():
          print "%s state is abbreviated %s and has city %s" % (
              state, abbrev, cities[abbrev])
      
      print '-' * 10
      # safely get a abbreviation by state that might not be there
      state = states.get('Texas', None)
      
      if not state:
          print "Sorry, no Texas."
      
      # get a city with a default values
      city = cities.get('TX', 'Does Not Exist')
      print "The city for the state 'TX' is: %s" % city

      結(jié)果如下:
      這里寫(xiě)圖片描述

      一塊一塊地來(lái)解釋吧。

      首先定義了字典,這里有兩種定義(事實(shí)上第二種是在添加字典中的元素)的方式。


      第一種:
      states = {
      ‘Oregon’: ‘OR’,
      ‘Florida’: ‘FL’,
      ‘California’: ‘CA’,
      ‘New York’: ‘NY’,
      ‘Michigan’: ‘MI’,
      }
      第二種:
      cities[‘NY’] = ‘New York’
      cities[‘OR’] = ‘Portland’

      而在使用時(shí),以states[‘縮寫(xiě)’]的形式即可表示相應(yīng)的字符串,這比數(shù)組強(qiáng)大的多,數(shù)組只能以基數(shù)來(lái)區(qū)分其中的元素,列表以縮寫(xiě)來(lái)區(qū)分,顯然方便的多,使用時(shí)不再要求你記住數(shù)值,縮寫(xiě)是你在學(xué)英語(yǔ)時(shí)以及記住的東西。


      print ‘-’ * 10
      print “Michigan has: “, cities[states[‘Michigan’]]
      print “Florida has: “, cities[states[‘Florida’]]

      這里是嵌套調(diào)用,因?yàn)閟tates和cities是在定義時(shí)就是嵌套定義的,所以可以嵌套使用,請(qǐng)記住這個(gè)用法。


      print ‘-’ * 10
      for state, abbrev in states.items():
      print “%s is abbreviated %s” % (state, abbrev)

      abbrev也是一個(gè)關(guān)鍵字,是指列表中元素的縮寫(xiě)。states.item()會(huì)遍歷states里面的所有內(nèi)容。


      state = states.get(‘Texas’, None)
      這里涉及到get函數(shù)。

      描述:
      Python 字典(Dictionary) get() 函數(shù)返回指定鍵的值,如果值不在字典中返回默認(rèn)值。

      語(yǔ)法:

      dict.get(key, default=None)

      參數(shù):
      key – 字典中要查找的鍵。
      default – 如果指定鍵的值不存在時(shí),返回該默認(rèn)值值。

      返回值:
      返回指定鍵的值,如果值不在字典中返回默認(rèn)值None。None是一個(gè)邏輯值,表示為假。所以if語(yǔ)句滿(mǎn)足運(yùn)行的條件,而最后一塊代碼中變量city中儲(chǔ)存的值不是一個(gè)邏輯值而是字符串。

      本節(jié)課涉及的知識(shí)

      其實(shí)本節(jié)課這種類(lèi)型的列表變量還有專(zhuān)門(mén)的名字叫做字典(dict),字典由鍵和值組成,鍵是數(shù)據(jù)庫(kù)里面的鍵(key),相當(dāng)于我們?nèi)粘I钪凶值涞捻?yè)碼,是一種索引或者說(shuō)地址,每一個(gè)鍵都對(duì)應(yīng)一個(gè)值。

      OperationResult
      len(a)the number of items in a 得到字典中元素的個(gè)數(shù)
      a[k]the item of a with key k 取得鍵K所對(duì)應(yīng)的值
      a[k] = vset a[k] to v 設(shè)定鍵k所對(duì)應(yīng)的值成為v
      del a[k]remove a[k] from a 從字典中刪除鍵為k的元素
      a.clear()remove all items from a 清空整個(gè)字典
      a.copy()a (shallow) copy of a 得到字典副本
      k in aTrue if a has a key k, else False 字典中存在鍵k則為返回True,沒(méi)有則返回False
      k not in aEquivalent to not k in a 字典中不存在鍵k則為返回true,反之返回False
      a.has_key(k)Equivalent to k in a, use that form in new code 等價(jià)于k in a
      a.items()a copy of a’s list of (key, value) pairs 得到一個(gè)鍵值的list
      a.keys()a copy of a’s list of keys 得到鍵的list
      a.update([b])updates (and overwrites) key/value pairs from b 從b字典中更新a字典,如果鍵相同則更新,a中不存在則追加
      a.fromkeys(seq[, value])Creates a new dictionary with keys from seq and values set to value 創(chuàng)建一個(gè)新的字典,鍵來(lái)自seq,值對(duì)應(yīng)鍵對(duì)應(yīng)的值
      a.values()a copy of a’s list of values 得到字典值的副本
      a.get(k[, x])a[k] if k in a, else x 得到a[k],若存在返回x
      a.setdefault(k[, x])a[k] if k in a, else x (also setting it) 得到a[k],若不存在返回x,并設(shè)定為x
      a.pop(k[, x])a[k] if k in a, else x (and remove k) 彈出a[k],若不存在則返回x,同時(shí)將刪除k鍵
      a.popitem()remove and return an arbitrary (key, value) pair 彈出a中對(duì)象的鍵和值,并刪除彈出的鍵和值
      a.iteritems()return an iterator over (key, value) pairs 返回a中所有對(duì)象(鍵和值)
      a.iterkeys()return an iterator over the mapping’s keys 返回a中所有鍵(索引)
      a.itervalues()return an iterator over the mapping’s values 返回a中所有值

      建議每天看一遍,一個(gè)星期之后就能牢記于心。也可以先記住本機(jī)課涉及的內(nèi)容,碰到字典再來(lái)翻這一節(jié)課。


        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多