Python 字典 Dictionary

本文从WordPress迁移而来, 查看全部WordPress迁移文章

字典中每一项元素的形式是

键:值

通过键,找到需要的值。字典中,允许,有键,但没有具体的值,即 键:None

常用

  • 初始化一个空的字典
1
dict = {}
  • 初始化一个有元素的字典
1
2
3
4
5
6
7
8
9
10
d = {'a':1 , 'b':2 , 'c':3}  #'a','b','c'是键
或者使用dict函数
d = dict(list) #dict函数接收一个参数,该参数是一个列表,把每一项元素先放入列表中
d = dict( (['a',1] , ['b',2] , ['c',3]) )
创建一个列表,有键,但对应的值为None
d = dict.fromkeys(keylist) #keylist是一个列表,需要的键保存在里面
也可以事先准备好一堆键,一堆值,然后将它们一一对应,来构造一个字典
d = dict(zip(keylist , valueslist)) #注意keylist和valueslist长度要相等,否则,多出来的部分,会被忽略掉
更直观的构造
d = dict(name='bob' , age=12) # 得到的字典是 {'name':'bob' , 'age':12}
  • 插入,修改,删除
1
2
3
4
5
6
d['d'] = 4  #相当于插入了 'd':4
**但注意,如果字典中已经存在了'd'这个键,上面的语句不是插入新的元素,而是修改'd'对应的值**
del d['a'] #删除键为'a'的项
d.pop('a') #删除键为'd'的项,同时返回对应的值,所以可以 print dd.pop('a')
del d #删除整个字典d,d这个字典实例已经没有的
d.clear() #清空整个字典,但这个字典还是存在的,是一个空字典,可以 print d , 打印一个空字典
  • 查找

如果某个键不存在,直接用该键去索引,是会出错的,所以索引前,进行测试是必须的

1
2
d.has_key('a')
'a' in d

效果是一样的,返回值是 True / False 表示是否存在该键

  • 测试
1
2
3
d.keys()     #列出整个字典的所有键,以一个列表的形式返回
d.values() #列出整个字典的所有值,以一个列表的形式返回
d.items() #列出整个字典的所有项,以一个列表的形式返回,列表的每个项是个元组,(键,值)
  • 合并两个字典
1
2
3
4
5
d1 = {'a':1 , 'b':2 , 'c':3}
d2 = {'x':5 , 'y':6 , 'z':7}
**d1.update(d2)**
print d1
{'a': 1, 'c': 3, 'b': 2, 'y': 6, 'x': 5, 'z': 7}
  • 复制
1
newd = d.copy()  #当d改变时newd不会改变
  • 遍历整个字典
1
2
3
4
5
6
7
8
9
10
11
for i in d: 
print "d[%s]=" % i,d[i]

for (k,v) in d.items():
print "d[%s]=" % k,v

for k,v in d.iteritems():
print "d[%s]=" % k,v

for k,v in zip(d.iterkeys(),d.itervalues()):
print "d[%s]=" % k,v