python常用操作(一)-- 字典操作
1、从字典中取值:
1 mydict = {"key" : "value"} 2 #使用get方法 3 val = mydict.get("key") 4 # val --> 'value'
1 mydict.get("if_key_not_in_dict", "default value") 2 #--> 'default value' 3 #并没有改变原dict 4 #mydict --> {"key":"value"}
2、给字典增加一个条目:
1 >>> mydict = {'key':'value'} 2 >>> mydict 3 {'key': 'value'} 4 >>> mydict.setdefault('newkey', 'newvalue') 5 'newvalue' 6 >>> mydict 7 {'newkey': 'newvalue', 'key': 'value'} 8 >>> mydict.setdefault('foo',[]).append(1) 9 >>> mydict 10 {'newkey': 'newvalue', 'foo': [1], 'key': 'value'} 11 >>> mydict.setdefault('foo',[]).append(2) 12 >>> mydict 13 {'newkey': 'newvalue', 'foo': [1, 2], 'key': 'value'}
3、快速创建字典的方法:
#1、使用内建方法dict >>> data = dict(a=1, b=2, c=3) >>> data {'a': 1, 'c': 3, 'b': 2} >>> keys = ['a', 'b', 'c'] >>> values = [1, 2, 3] #当键和值都为序列时,使用zip方法 #zip方法返回一个数对(key,value)构成的列表 >>> zip(keys, values) [('a', 1), ('b', 2), ('c', 3)] >>> mydict = dict(zip(keys, values)) >>> mydict {'a': 1, 'c': 3, 'b': 2}
4、交替列表里元素作为键和值来创建字典:
>>> mylist = ['a', 1, 'b', '2', 'c', 3] #间隔取元素 >>> mylist ['a', 1, 'b', '2', 'c', 3] >>> mylist[::2] ['a', 'b', 'c'] >>> mylist[1::2] [1, '2', 3]
#使用zip方法 >>> zip(mylist[::2], mylist[1::2]) [('a', 1), ('b', '2'), ('c', 3)] >>> dict(zip(mylist[::2],mylist[1::2]))
#创建字典 {'a': 1, 'c': 3, 'b': '2'}
5、获取一个字典的子集:
>>> def sub_dict(somedict, somekeys, default=None): ... return dict([(k, somedict.get(k, default)) for k in somekeys]) ... >>> d = {'a':1, 'b':2, 'c':3} >>> sub_dict(d, 'ab') {'a': 1, 'b': 2}
6、反转字典:
>>> dict([(v,k) for k,v in d.iteritems()]) {1: 'a', 2: 'b', 3: 'c'}