python基礎教程學習筆記---(4)字典

來源:互聯網
上載者:User

標籤:

序列是python中的一種資料結構,映射是另一種。映射(mapping)通過名字來引用值。python內建的唯一一種映射結構是字典。字典中的值沒有特殊的順序,但都儲存在一個特定的鍵中。鍵可以是數字、字串甚至數元組。 1、字典的使用:序列通過索引來找到元素的取值。字典通過鍵來擷取它的值。欄位比列表在某些方面更加適用:①遊戲棋盤是用座標值來組成的②檔案是用檔案名稱來確定的③數字電話,地址對應一個連絡人這些都不能通過索引來代替。 2、字典的建立:字典是由索引值對組成,一個索引值對稱為一項。鍵與值之間用冒號隔開,項與項之間用逗號隔開,整個字典用一對大括弧括起來。空字典,即不包含任何項的字典,是有一對大括弧組成。列表,用方括弧。元組,用圓括弧。字典中的鍵是唯一的,同一個字典中不允許重複,值則是不唯一的。使用dict函數來建立欄位。 3、基本字典操作:字典的基本行為包括:①len返回字典中項的數目。②dic1[k]返回字典dic1中鍵為k的值。③dic1[k]=v將值v關聯到字典dic1的鍵k上。④del dic1[k]刪除字典dic1中鍵為k的項。⑤k in dic1檢查字典dic1中是否含有鍵為k的項。可以看到,dic1[k]=v的用法既可以為字典添加新項,也可以用於更改現有項的值。另外,有:①鍵類型:字典的鍵不一定為整數類型,也可以是浮點型、字串、元組等等。②自動添加:為字典中不存在的鍵分配一個值時,會自動在字典中建立這樣一個索引值對。③成員資格:k in dic1是用來尋找鍵是否存在,而不是值是否存在。 4、字典方法:(1)clear方法clear方法用於清空字典,但沒有傳回值。注意以下兩種區別:dicx與dicy並不是兩個字典,而是指向同一字典的兩個代號。對dicx的改變從而會影響dicy。因此,對dicx重新賦值或者清空都會影響dicx字典本身,從而影響dicy。dicx與dicy最初都指向同一個字典。後來使用dicx={}重新將dicx指向了另一個空字典。此後,dicx與dicy就是兩個不同的字典,對dicx的改變將不影響dicy。(2)copy方法:copy方法主要用於將一個字典複製產生另一個字典,但這種複製屬於淺複製(shallow copy)。對字典x使用copy方法產生一個副本y。對y進行項的添加、刪除、清空、值的替換都不影響x,但是對值的改變是會影響到x字典的。(3)deepcopy函數deepcoop函數是相對與copy方法的深複製。但它不是字典內建的方法,而是copy模組中的deepcopy函數。deepcopy函數是一種深複製,複製完成後,非副本做出的任何改變都不會影響到元字典本身。(4)fromeys方法fromkeys方法主要是為建立新的字典,該字典所有的鍵都是相同的值。新項一定要給出鍵,值可以不給,不給就預設為None。從上面的例子可以看出,使用fromkeys方法只能產生一個新的字典,而不能該變一個字典本身,或者為一箇舊字典添加新項。並且fromkeys方法只能為添加的鍵使用一個共同的值,即所有的鍵的值都是相同的,鍵要麼都是none,要麼都是一個值。(5)get方法get方法是一種訪問字典項的方法。如果使用鍵來訪問字典中的項,當我們試圖訪問字典中不存在的項時會出錯。但是使用get方法則會返回一個預設值,比如none。這個預設值也可以更改。舉例:查詢使用者電話和地址,對空使用者進行了處理。(6)has_key()方法用於檢查字典中是否含有給出的鍵。相當於k in dic(7)items方法items方法將所有的字典項以列表方式返回。產生的列表的每一個元素都是原來字典的一項(鍵-值),但項與項之間在返回是並沒有特殊的順序。(8)iteritems方法iteritems方法的作用與items方法大致相同,但是會返回一個迭代器對象而不是列表。在很多情況下iteritems更高效。(9)keys方法keys方法是將字典中所有的鍵以列表形式返回。類似於items。(10)iterkeys方法iterkeys方法是將字典中的鍵以迭代器的方式返回。類似於iteritems。(11)popitem方法popitem方法類似於列表中的list.pop。list.pop方法會彈出列表中的最後一個元素,而popitem彈出一個隨機的項。因為在字典中沒有順序的概念。如果想一個接一個的移除並處理項,這個方法就非常有效。每一次popitem()方法就會在字典中隨機移除一項。字典中沒有append等級的方法,這是因為在字典中沒有順序的概念。(12)setdefault方法setfault方法在某種程度上類似於get方法,就是能夠獲得給定鍵相關聯的值。除此之外,setdefalut方法還能在字典中不含有給定鍵的情況下設定相應的索引值。setfault方法有兩個作用,一個是根據鍵查看某一個已經存在的項的值,第二是為字典添加一個新的項,添加時可以指定項中的值,也可以不指定,那麼就會自動使用預設值None。
(13)update方法update方法可以利用一個字典去更新另外一個字典。對於一箇舊字典,使用新字典來更新,新字典中的項可以是一項也可以是多項。如果舊字典中沒有新字典中的鍵,那麼新字典中的那項就會被添加到舊字典中。如果舊字典中有相同的鍵,那麼會用新字典中項的值替代舊字典中的項的值。(14)values方法values方法用於以列表的形式返回字典中的值。與items方法和keys方法類似。由於字典中的值可能相同,因此,返回的列表中可以包含重複的元素。
(15)itervalues方法itervalues方法用於以迭代器的形式返回字典中的值。與iteritems方法和iterkeys方法類似。由於字典中的值可能相同,因此,返回的列表中可以包含重複的元素。 5、小結:       

python基礎教程學習筆記---(4)字典

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.