python 字典操做

python dict字典

字典是另外一种可变容器模型无序的,且可存储任意类型对象 
字典首先是键值对形式 
key : value 
使用{}表示python

  • 字典的特色:

键必须是惟一的,但值则没必要惟一。ide

值能够取任何数据类型,但键必须是不可变的类型。spa

  不可变类型:数字、字符串、元组;code

  可变类型:列表、字典。对象

字典中键值是无序的。blog

 

字典的基本操做

1.建立字典排序

>>> dic1 = {'k1':'v1' }
>>> dic1
{'k1': 'v1'}

2.访问字典
dic[key] 形式返回键key对应的值value,若是key不在字典中会引起一个KeyError。element

>>> dic1['k1']
'v1'
>>> dic1['k2']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'k2'

3.判断key是否在字典中rem

>>> 'k1' in dic1
True
>>> 'k2' in dic1 
False

有返回True,无返回False字符串

4.更新字典 update方法

>>> dic2 = {'k2':'v2'}
>>> dic1.update(dic2)
>>> dic1
{'k2': 'v2', 'k1': 'v1'}

5.删除操做
删除一个键对

>>> del dic1['k1']
>>> dic1
{'k2': 'v2'}

删除整个字典

>>> del dic1
>>> dic1    
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'dic1' is not defined

清空字典

>>> dic1 = {'k1':'v1' }
>>> dic1.clear()
>>> dic1
{}

删除一个键,并返回改键对应的值

>>> dic1 
{'k2': 'v2', 'k1': 'v1'}
>>> dic1.pop('k2')
'v2'
>>> dic1
{'k1': 'v1'}

6.字典排序
按照键排序

>>> dic3 = {11:'abc','bcd':'kkk','ttt':'aaa',99:33}
>>> dic3
{'bcd': 'kkk', 99: 33, 11: 'abc', 'ttt': 'aaa'}
>>> sorted(dic3)
[11, 99, 'bcd', 'ttt']

按照键对进行排序

>>> dic3 = {11:'abc','bcd':'kkk','ttt':'aaa',99:33}
>>> dic3
{'bcd': 'kkk', 99: 33, 11: 'abc', 'ttt': 'aaa'}
>>> sorted(dic3.items())
[(11, 'abc'), (99, 33), ('bcd', 'kkk'), ('ttt', 'aaa')]

7.遍历字典
遍历键

>>> for i in dic3.keys():
...     print i
... 
bcd
99
11
ttt

遍历值

>>> for i in dic3.values():
...     print i            
... 
kkk
33
abc
aaa

遍历键值

>>> for i in dic3.items(): 
...     print i           
... 
('bcd', 'kkk')
(99, 33)
(11, 'abc')
('ttt', 'aaa')

注意使用字典的时候: 
一、不能容许一键对应多个值; 
二、键必须是可哈希的。

 

字典的方法总结:

一、dict.keys() 返回一个包含字典全部KEY的列表; 二、dict.values() 返回一个包含字典全部value的列表; 三、dict.items() 返回一个包含全部(键,值)元祖的列表; 四、dict.clear() 删除字典中的全部项或元素; 五、dict.copy() 返回一个字典浅拷贝的副本; 六、dict.fromkeys(seq, val=None) 建立并返回一个新字典,以seq中的元素作该字典的键,val作该字典中全部键对应的初始值(默认为None); 七、dict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None); 八、dict.has_key(key) 若是key在字典中,返回True,不然返回False。 如今用 in 、 not in; 九、dict.iteritems()、adict.iterkeys()、adict.itervalues() 与它们对应的非迭代方法同样,不一样的是它们返回一个迭代子,而不是一个列表; 十、dict.pop(key[,default]) 和get方法类似。若是字典中存在key,删除并返回key对应的vuale;若是key不存在,且没有给出default的值,则引起keyerror异常; 十一、dict.setdefault(key, default=None) 和set()方法类似,但若是字典中不存在Key键,由 adict[key] = default 为它赋值; 十二、dict.update(bdict) 将字典bdict的键值对添加到字典adict中。

相关文章
相关标签/搜索