摘要:還有別的方法得到鍵值嗎有一般不是只有一個方法實現(xiàn)某個操作的。刪除鍵值對的方法有兩個,但是兩者有一點區(qū)別,根據(jù)刪除相應(yīng)的鍵值對,并返回該值沒有返回值,如果刪除鍵不存在,返回錯誤用可以把合并到中。
dict的很多方法跟list有類似的地方,下面一一道來,并且會跟list做一個對比
嵌套嵌套在list中也存在,就是元素是list,在dict中,也有類似的樣式:
>>> a_list = [[1,2,3],[4,5],[6,7]] >>> a_list[1][1] 5 >>> a_dict = {1:{"name":"qiwsir"},2:"python","email":"qiwsir@gmail.com"} >>> a_dict {1: {"name": "qiwsir"}, 2: "python", "email": "qiwsir@gmail.com"} >>> a_dict[1]["name"] #一個嵌套的dict訪問其值的方法:一層一層地寫出鍵 "qiwsir"獲取鍵、值
在上一講中,已經(jīng)知道可以通過dict的鍵得到其值。例上面的例子。
還有別的方法得到鍵值嗎?有!python一般不是只有一個方法實現(xiàn)某個操作的。
>>> website = {1:"google","second":"baidu",3:"facebook","twitter":4} >>>#用d.keys()的方法得到dict的所有鍵,結(jié)果是list >>> website.keys() [1, "second", 3, "twitter"] >>>#用d.values()的方法得到dict的所有值,如果里面沒有嵌套別的dict,結(jié)果是list >>> website.values() ["google", "baidu", "facebook", 4] >>>#用items()的方法得到了一組一組的鍵值對, >>>#結(jié)果是list,只不過list里面的元素是元組 >>> website.items() [(1, "google"), ("second", "baidu"), (3, "facebook"), ("twitter", 4)]
從上面的結(jié)果中,我們就可以看出,還可以用for語句循環(huán)得到相應(yīng)內(nèi)容。例如:
>>> for key in website.keys(): ... print key,type(key) ... 1second 3 >>>#下面的方法和上面的方法是一樣的 >>> for key in website: ... print key,type(key) ... 1 second 3
以下兩種方法等效:
>>> for value in website.values(): ... print value ... google baidu facebook 4 >>> for key in website: ... print website[key] ... google baidu facebook 4
下面的方法又是等效的:
>>> for k,v in website.items(): ... print str(k)+":"+str(v) ... 1:google second:baidu 3:facebook twitter:4 >>> for k in website: ... print str(k)+":"+str(website[k]) ... 1:google second:baidu 3:facebook twitter:4
下面的方法也能得到鍵值,不過似乎要多敲鍵盤
>>> website {1: "google", "second": "baidu", 3: "facebook", "twitter": 4} >>> website.get(1) "google" >>> website.get("second") "baidu"其它幾種常用方法
dict中的方法在這里不做過多的介紹,因為前面一節(jié)中已經(jīng)列出來類,看官如果有興趣可以一一嘗試。下面列出幾種常用的
>>> len(website) 4 >>> website {1: "google", "second": "baidu", 3: "facebook", "twitter": 4} >>> new_web = website.copy() #拷貝一份,這個拷貝也叫做淺拷貝,對應(yīng)著還有深拷貝。 >>> new_web #兩者區(qū)別,可以google一下。 {1: "google", "second": "baidu", 3: "facebook", "twitter": 4}
刪除鍵值對的方法有兩個,但是兩者有一點區(qū)別
>>>#d.pop(key),根據(jù)key刪除相應(yīng)的鍵值對,并返回該值 >>> new_web.pop("second") "baidu" >>> del new_web[3] #沒有返回值,如果刪除鍵不存在,返回錯誤 >>> new_web {1: "google", "twitter": 4} >>> del new_web[9] Traceback (most recent call last): File "", line 1, in KeyError: 9
用d.update(d2)可以把d2合并到d中。
>>> cnweb {"qq": "first in cn", "python": "qiwsir.github.io", "alibaba": "Business"} >>> website {1: "google", "second": "baidu", 3: "facebook", "twitter": 4} >>> website.update(cnweb) #把cnweb合并到website內(nèi) >>> website #變化了 {"qq": "first in cn", 1: "google", "second": "baidu", 3: "facebook", "python": "qiwsir.github.io", "twitter": 4, "alibaba": "Business"} >>> cnweb #not changed {"qq": "first in cn", "python": "qiwsir.github.io", "alibaba": "Business"}
在本講最后,要提醒看官,在python3中,dict有不少變化,比如能夠進(jìn)行字典解析,就類似列表解析那樣,這可是非常有意思的東西哦。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/45286.html
摘要:字典,這個東西你現(xiàn)在還用嗎隨著網(wǎng)絡(luò)的發(fā)展,用的人越來越少了。最早的名字叫伍記小字典,但未能編纂完成。新華字典由商務(wù)印書館出版。成為迄今為止世界出版史上最高發(fā)行量的字典。也被稱為關(guān)聯(lián)數(shù)組或哈希表。 字典,這個東西你現(xiàn)在還用嗎?隨著網(wǎng)絡(luò)的發(fā)展,用的人越來越少了。不少人習(xí)慣于在網(wǎng)上搜索,不僅有web版,乃至于已經(jīng)有手機(jī)版的各種字典了。我曾經(jīng)用過一本小小的《新華字典》。 《新華字典》是...
摘要:前面已經(jīng)洋洋灑灑地介紹了不少數(shù)據(jù)類型。所有的數(shù)據(jù)類型,就是一種對象。可以在交互模式下這樣查看顯示應(yīng)該是這樣的注意看上面亂七八糟的英文中,是不是有符號,這是什么前面在講述字符串的時候提到了轉(zhuǎn)義符號,這是換一行。 前面已經(jīng)洋洋灑灑地介紹了不少數(shù)據(jù)類型。不能再不顧一切地向前沖了,應(yīng)當(dāng)總結(jié)一下。這樣讓看官能夠從總體上對這些數(shù)據(jù)類型有所了解,如果能夠有一覽眾山小的感覺,就太好了。 下面的表格中...
摘要:下面總結(jié)通過總結(jié)常見的函數(shù)參數(shù)定義方式,來理解參數(shù)傳遞的流程。這種方式最常見了,列出有限個數(shù)的參數(shù),并且彼此之間用逗號隔開。而且,必須數(shù)量一致,一一對應(yīng)。 就前面所講,函數(shù)的基本內(nèi)容已經(jīng)完畢。但是,函數(shù)還有很多值得不斷玩味的細(xì)節(jié)。這里進(jìn)行闡述。 參數(shù)的傳遞 python中函數(shù)的參數(shù)通過賦值的方式來傳遞引用對象。下面總結(jié)通過總結(jié)常見的函數(shù)參數(shù)定義方式,來理解參數(shù)傳遞的流程。 def...
摘要:最簡單的說法,即是在最原始的集合論樸素集合論中的定義,集合就是一堆東西。若然是集合的元素,記作。這里對被數(shù)學(xué)家們稱為直觀的或樸素的集合論進(jìn)行一個簡短而基本的介紹更詳細(xì)的分析可見樸素集合論。對集合進(jìn)行嚴(yán)格的公理推導(dǎo)可見公理化集合論。 回顧一下已經(jīng)了解的數(shù)據(jù)類型:int/str/bool/list/dict/tuple 還真的不少了. 不過,python是一個發(fā)展的語言,沒準(zhǔn)以后還出別...
摘要:看這個標(biāo)題,有點匪夷所思嗎為什么是難以想象的呢因為在中,它的確是很常用而且很強(qiáng)悍,強(qiáng)悍到以至于另外一個被稱之為迭代的東西,在中就有點相形見絀了。然后將序列對應(yīng)的元素依次組成元組,做為一個的元素。 看這個標(biāo)題,有點匪夷所思嗎?為什么for是難以想象的呢?因為在python中,它的確是很常用而且很強(qiáng)悍,強(qiáng)悍到以至于另外一個被稱之為迭代的東西,在python中就有點相形見絀了。在別的語言中,...
閱讀 2985·2021-10-19 11:46
閱讀 979·2021-08-03 14:03
閱讀 2934·2021-06-11 18:08
閱讀 2905·2019-08-29 13:52
閱讀 2744·2019-08-29 12:49
閱讀 480·2019-08-26 13:56
閱讀 924·2019-08-26 13:41
閱讀 849·2019-08-26 13:35