下面介紹跟字典相關的一些代碼的寫法python
咱們先定義一個dictionaryapp
mydict = {'a': 1,'b': 2, 'c': 3}
常見到的寫法code
mydict.has_key('a')
推薦更pythonic寫法get
'a' in mydict
常見到的寫法it
not 'a' in mydict
推薦更pythonic寫法io
'a' not in mydict
常見到的寫法遍歷
if 'd' not in mydict: mydict['d'] = 0 return mydict['d']
推薦更pythonic寫法方法
return mydict.get('d', 0)
print mydict.setdefault('e', [])
setdefault
方法會返回mydict['e']
的值若是'e'
元素存在, 若是不存在, 則會把mydict['e']
設置爲[]
, 而後返回dict
mydict = defaultdict(list) for x in ['a', 'b']: mydict[x].append(100)
defaultdicy(list)
生成的mydict
的每一個元素的默認值都是空的list
di
mydict = {'a': 1,'b': 2, 'c': 3} for k, v in mydict.iteritems(): print k
像上面這段代碼輸出結果是什麼? 是 a b c
?
答案是不必定
, 不相信你能夠重複試幾回, 有多是a c b
之類的結果
因此for in
遍歷dictionary的時候, 遍歷順序不必定
跟定義字典的時候元素排列順序一致
至於爲何, 跟CPyhon的實現有關, 稍後我再詳細解釋
若是你須要一致的順序, 請使用OrderedDict