1,创建字典
>>> a={'a':1,'b':2,'c':3} >>> a {'a': 1, 'c': 3, 'b': 2}
通过dict()函数创建字典
>>>b=dict(['a',1],['b',2],['c',3]) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: dict expected at most 1arguments, got 3 >>>b=dict((['a',1],['b',2],['c',3])) >>> b {'a': 1, 'c': 3, 'b': 2} >>> c=dict(a=1,b=1) >>> c {'a': 1, 'b': 1} >>> c=dict('a'=1,'b'=2) File "<stdin>", line 1 SyntaxError: keyword can't be an expression >>>
通过fromkeys()函数创建字典
>>> d={}.fromkeys(('x','y'),-1) >>> d {'y': -1, 'x': -1} >>> d={}.fromkeys(('x','y')) >>> d {'y': None, 'x': None} >>> a=(1,2,3,4) >>> d={}.fromkeys(a) >>> d {1: None, 2: None, 3: None, 4: None} >>> a=[1,2,3,4] >>> d={}.fromkeys(a) >>> d {1: None, 2: None, 3: None, 4: None} >>>
2,访问字典的值,dict[key]返回可以对应的value,如果key不在字典中会引发一个keyError。
>>> a=dict(([1,2],[3,4],[5,6])) >>> a {1: 2, 3: 4, 5: 6} >>> >>> a[1] 2 >>> a['1'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: '1' >>>
3,检查key是否在字典中?
>>> a={1:2,3:4,'5':6} >>> a {1: 2, 3: 4, '5': 6} >>> a.haskey('5') #应该为a.has_key('5') Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'dict' object has noattribute 'haskey' >>> a.haskey(1) Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'dict' object has noattribute 'haskey' >>> a {1: 2, 3: 4, '5': 6} >>> '5' in a True
4,更新字典
I)添加新元素
>>>a=dict(([1,2],[3,4],['a','b'])) >>> a['e']='f' >>> a {'a': 'b', 1: 2, 3: 4, 'e': 'f'}
II)更新旧元素
>>> a {'a': 'b', 1: 2, 3: 4, 'e': 'f'} >>> a['a']=0 >>> a {'a': 0, 1: 2, 3: 4, 'e': 'f'}
III)删除元素
>>> a {'a': 0, 1: 2, 3: 4, 'e': 'f'} >>> del a['e'] >>> a.pop('a') #删除元素,并且返回value值。 0 >>>
5,映射相关
1,比较
>>> a {1: 2, 3: 4} >>> b {} >>> cmp(a,b) 1 >>>
2,len()返回字典的长度
3,hash() 返回对象的哈希值,可以用来判断一个对象能否用来作为字典的键
4,dict() 工厂函数,用来创建字典
6,字典的方法
>>>a=dict([[1,2],['a','b'],[1,'f']]) >>> a {'a': 'b', 1: 'f'} >>> a.keys() ['a', 1] >>> a.values() ['b', 'f'] >>> a.items() [('a', 'b'), (1, 'f')] >>> a.clear() >>> a {} >>>
1、adict.keys()返回一个包含字典所有KEY的列表;
2、adict.values() 返回一个包含字典所有value的列表;
3、adict.items() 返回一个包含所有(键,值)元祖的列表;
4、adict.clear() 删除字典中的所有项或元素;
5、adict.copy() 返回一个字典浅拷贝的副本;
6、adict.fromkeys(seq, val=None) 创建并返回一个新字典,以seq中的元素做该字典的键,val做该字典中所有键对应的初始值(默认为None);
7、adict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None);
8、adict.has_key(key) 如果key在字典中,返回True,否则返回False。 现在用in 、 not in;
9、adict.iteritems()、adict.iterkeys()、adict.itervalues()与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表;
10、adict.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;
11、adict.setdefault(key,default=None) 和set()方法相似,但如果字典中不存在Key键,由 adict[key] = default 为它赋值;
12、adict.update(bdict) 将字典bdict的键值对添加到字典adict中。
7,字典遍历
>>> a=(1,2,3,4,5,6,7,8,9,0) >>> b={}.fromkeys(a,'a') >>> a (1, 2, 3, 4, 5, 6, 7, 8, 9, 0) >>> b {0: 'a', 1: 'a', 2: 'a', 3: 'a', 4: 'a', 5:'a', 6: 'a', 7: 'a', 8: 'a', 9: 'a'} >>> for key in b.keys():print key ... 0 1 2 3 4 5 6 7 8 9 >>> for value in b.values():printvalue, ... a a a a a a a a a a >>> for item in b.items():printitem, ... (0, 'a') (1, 'a') (2, 'a') (3, 'a') (4,'a') (5, 'a') (6, 'a') (7, 'a') (8, 'a') (9, 'a') >>> for item,value in b.items(): ... print 'key=%s,value=%s' %(item,value) ... key=0,value=a key=1,value=a key=2,value=a key=3,value=a key=4,value=a key=5,value=a key=6,value=a key=7,value=a key=8,value=a key=9,value=a >>> for item,value inb.iteritems(): ... print 'key=%s,value=%s' %(item,value) ... key=0,value=a key=1,value=a key=2,value=a key=3,value=a key=4,value=a key=5,value=a key=6,value=a key=7,value=a key=8,value=a key=9,value=a
转载于:https://blog.51cto.com/dingtongxue1990/1675928