下面介绍跟字典相关的一些代码的写法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