python字典(dict)是乙個很常用的復合型別,其它常用符合型別有:陣列(array)、元組(touple)和集合(set)。字典是乙個key/value的集合,key可以是任意可被雜湊(內部key被hash後作為索引)的型別。因此,key可以是文字、數字等任意型別。如果兩個數字'=='判斷相等,那麼key就相等,value會產生覆蓋(例如:1 == 1.0 # => true)。注意,浮點數比較很不精確,因此千萬不要用浮點數作為key!
字典是python的內建型別,有字面量的表示方法——逗號分割的'key: value'元組:
當然,還可以用dict函式來生成返回字典(摘自官方文件的乙個例子):
>>> a = dict(one=1, two=2, three=3)
>>> b =
>>> c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
>>> d = dict([('two', 2), ('one', 1), ('three', 3)])
>>> e = dict()
>>> a == b == c == d == e
true
dict函式可接收的引數形式相當豐富。第一行用關鍵字引數來生成字典,很容易理解。第三行與第四行其實是相同的方式,zip函式將兩個陣列引數兩兩合併成為乙個二元組陣列,所以,還可以傳入二元組陣列作為引數。直接傳入乙個字面量的字典表示法也可以。當然,這幾種形式後面還可以繼續加關鍵字引數:
>>> d = dict([('two', 2), ('one', 1), ('three', 3)], four=4, five=5)
>>> e = dict(, four=4, five=5)
後面的關鍵字引數key如果在前面出現過,那麼將會覆蓋前面的值。
字典的常見操作
'd'表示乙個字典例項,'dict'表示字典類
len(d) 返回字典中有多少項
d[key] 返回索引為'key'的值,不存在丟擲keyerror
d[key] = value 設定'key'項的值為'value'
del d[key] 刪除索引為'key'的項,不存在丟擲keyerror
key in d 返回'key'是否在字典內
key not in d
高階操作
d.clear() 清除所有項
d.copy() 返回乙個轉殖的字典
iter(d) 返回乙個iterable物件,迭代字典的key。相當於d.iterkeys()
>>> d = dict(one=1, two=2, three=3)
>>> it = iter(d)
>>> it.next() # => "three" # 字典插入是無順序的
>>> it.next() # => "two"
>>> it.next() # => "one"
>>> it.next() # => stopiteration
dict.fromkeys(seq[,value]) 通過乙個序列物件(列表、字典、集合的keys等)建立字典,value為每個項的預設值
d.get(key,[default]) 獲取key對應的值,不存在則返回default值。與d[key]的區別是前者不丟擲keyerror,而是返回default值
d.keys() 將所有keys作為乙個列表返回,相當與list(d)
d.values()
d.items() 返回乙個(key, value)的元組列表
d.iterkeys() 返回乙個可key的迭代物件
d.itervalues
d.iteritems
d.pop(key[,default]) 刪除指定的項並返回值,如果不存在則返回default。若default未設定則在key不存在的情況下丟擲keyerror
d.popitem() 刪除隨機的乙個項,並返回(key, value)
d.setdefault(key[,default]) 與d.pop很相似,不過,在沒有指定key的情況下該函式會插入這個項並返回
d.update([other]) 與用dict建立字典所接受的引數型別相同,建立或者更新項
d.viewkeys() 返回view物件,字典改變,view物件也會改變
d.viewvalues()
d.viewitems()
view物件
v不能進行更新和索引,需先轉換為其他序列型別。
len(v)
iter(v)
x in v
v & other 交集,other可以是任何序列物件
v | other 並集
v - other 補集
v ^ other 非交集
python字典換行輸出 Python字典如何換行
python字典如何換行 python字典換行的方法如下 1 換行時保證行尾是逗號即可a key2 val2 key3 val3 key4 val4 key5 val5 注意這種情況下,每一行第乙個非空白字元都要和第一行的括號後的字元對齊,並且最後的括號是不換行 直接跟在最後乙個元素後面 的。3 另...
python實現字典排序 python 字典排序
引子 字典,形如 dic 字典中的元素沒有順序,所以dic 0 是有語法錯誤的。並且不可以有重複的鍵值,所以 dic.add c 4後,字典變成 待解決問題 如何根據需要可以根據 鍵 或 鍵值 進行不同順序的排序?函式原型 sorted dic,value,reverse dic為比較函式,valu...
python操作字典 Python 字典操作高階
學習了 python 基本的字典操作後,學習這些高階操作,讓寫出的 更加優雅簡潔和 pythonic 與字典值有關的計算 問題想對字典的值進行相關計算,例如找出字典裡對應值最大 最小 的項。解決方案一 假設要從字典 中找出值最小的項,可以這樣做 d min zip d.values d.keys 2...