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'}

 

 

 

 

 

posted @ 2013-04-10 10:33  thinbottle  阅读(212)  评论(0编辑  收藏  举报