標籤:

吃條python壓壓驚(1)-dictionary

這其實是學習python3的筆記。

dictionary,tuple,list是三種內置的數據類型。

dictionary可以存儲key-value關係

創建dictionary:

{"key1":"value1","key2":"value2","key3":"value3"}#未賦給任何變數的dictionary

如上代碼創建了一個dictionary,有三個元素,其中,字元串"key1","key2","key3"為三個key,"value1","value2","value3"為對應值(value)。元素沒有順序。若想將其存儲備用,應將其賦值給某個變數。key可取的類型包括數,字元串等,value幾乎沒有限制,甚至可以為另一個dictionary。

通過key引用value及賦值:

>>>{"key1":"value1","key2":"value2","key3":"value3"}["key1"]"value1">>>d={"key1":"value1","key2":"value2","key3":"value3"}>>>d["key1"]"value1">>>d.get("key0",None)>>>d["key1"]=1>>>d["key1"]1>>>d["key1"]={1:9,2:8,3:7}>>>d["key1"][1]9

這是在互動式shell中的輸出結果。對於一坨東西,若已知其為dictionary,在其後連接一個[key],則這個表達式相當於其對應的value。而且一般這個value可看作一個獨立的變數,key為變數名,顯然一個變數名不能在運行中修改。d.get(key,default)返回key對應的value,若這個key不存在,返回default的值。

刪除key-value:

>>>del d["key1"]>>>d{"key2":"value2","key3":"value3"}>>>d.clear()>>>d{}>>>del d>>>d

clear()可看作d這個對象的一個方法。clear()後,d並不是變為空(即None),而只是變成一個空dictionary(即{})。del是刪除變數的方式,也可用於刪除dictionary中的元素。

添加key-value對:

>>>d={1:1,2:2}>>>d[3]=3>>>d{1:1,2:2,3:3}

直接賦值就可以。即不存在的key可看作其value為None

dictionary其他用法:

>>>d={1:1,2:2,3:3}>>>len(d)3>>>str(d){1:1,2:2,3:3}>>>0 in dFalse>>>1 in dTrue>>>d.items()dict_items([(1, 1), (2, 2), (3, 3)])#以列表返回可遍歷的(鍵, 值) 元組數組>>>d.keys()dict_keys([1,2,3])#以列表返回一個字典所有的鍵>>>d.values()dict_values([1,2,3])>>>d.setdefault(4,4)#4不存在,自動將4的value設為default的值4>>>d{1:1,2:2,3:3,4:4}>>>d.pop(4,0)#刪除給定key和value,返回原value的值。若key不存在,返回default值。4>>>d{1:1,2:2,3:3}>>>d.pop(4,0)0>>>d.update({1:5,2:2,3:7,8:8})#把新dictionary的鍵/值對更新到d里>>>d{1:5,2:2,3:7,8:8}

Python還有一個重要的東西:淺複製。eg:

>>>c={1:1}>>>a=c>>>b=c.copy()#淺複製>>>c[1]=2 #改變的是{1:1}的內容>>>a #a與c相當於同一個dictionary{1:2}>>>b #b複製了c的內容,佔據了新一片存儲空間,與c對應的dictionary無關{1:1}

參考:Python3 字典 | 菜鳥教程

推薦閱讀:

文件里寫的是unicode,用python怎麼讀取成文本?
python如何做一個實時檢測的服務端?
Python進階課程筆記(四)
在 Python 中,為什麼 pow 這樣的函數可以直接調用,而 floor 這樣的函數得先導入模塊?
Mixin是什麼概念?

TAG:Python |