1.dictionary字典,是除列表外python最灵活的内置数据结构类型,列表是有序的对象集合,字典是无序的对象集合。字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用“{}”标识,字典由索引(key),和它对应的值value组成
字典是一种通过名字或者关键字引用的数据结构,其键可以是数字、字符串、元组,这种结构类型也称之为映射。字典类型是Python中唯一內 建的映射类型,基本的操作包括如下:
(1)len():返回字典中键—值对的数量;
(2)d[k]:返回关键字对于的值;
(3)d[k]=v:将值关联到键值k上;
(4)del d[k]:删除键值为k的项;
(5)key in d:键值key是否在d中,是返回True,否则返回False。
2.创建字典
字典由多个键及其对应值构成的键-值对组成,键与值之间用:隔开。
(1) dict1 = {} #创建一个空字典
dict2={'x':5, 'd':4, 's':'dd'} #创建字典 #注意,字典的键是唯一的,但值并不唯一
print dict2
运行输出:{'x':5, 'd':4, 's':'dd'}
(2) dict函数(类型)
items = [('name', 'Gumby'), ('age', 42)]
dict3 =dict(items)
print dict3
运行输出:{'age': 42, 'name': 'Gumby'} # 转化为字典形式
(3)也可以通过关键字创建字典:
dict4 = dict(name = 'Gumby', age = 42)
print dict4
运行输出:{'age': 42, 'name': 'Gumby'}
3.d['y'] 返回字典中‘y’对应的值 type(y) 求字典的类型
len(c) 返回字典c中键值对的数量 print 'x' in d # true/False ,检查'x'是否在字中, . 查找的是键而不是值
dict3 = {'x':4, 'adc':'wewe', 'a':'as'}
print dict3
print dict3['x']
print type(dict3)
print len(dict3)
print '5' in dict3
dict3['adc'] = 4 #将4赋值给adc
print dict3
del dict3['a'] #删除键值为a的项
print dict3
运行输出:
{'a': 'as', 'x': 4, 'adc': 'wewe'}
4
<type 'dict'>
3
False
{'a': 'as', 'x': 4, 'adc': 4}
{'x': 4, 'adc': 4}
4.字典的方法
(1) clear清除字典的项
d = {'x': 5, 'y': 6, 'z': 1, 'r': 12,'7' :4}
d.clear()
print d
运行后输出:
{}
(2)formkeys 使用给定的键建立新的字典,每个键对应的默认值为None
c = {}
a = c.fromkeys(['s','b'])
print c # 仍是空字典
print a # 新的字典a
运行输出;
{}
{'s': None, 'b': None}
(3)has_key 检查字典中是否含有特定的键,d.has_key(k)相当于k in d
d = {'x': 5, 'y': 6, 'z': 1, 'r': 12,'7' :4}
print d.has_key('x')
print d.has_key('4')
运行输出:
True
False
(4)get方法:get是个更宽松的访问字典项的方法
d = {'x': 5, 'y': 6, 'z': 1, 'r': 12,'7' :4}
print d.get('x')
运行输出:5
(5)copy方法:返回一个具有相同键—值对的新字典,这个方法的是浅复制
d = {'x': 5, 'y': 6, 'z': 1, 'r': 12,'7' :4}
s = d.copy()
print s
运行输出:{'y': 6, 'x': 5, 'r': 12, 'z': 1, '7': 4}
(6)items方法将所有的字典项一列表方式返回,这些列表项中的每一项都来自于(键,值),但是项在返回时并没有特殊的顺序
d = {'x': 5, 'y': 6, 'z': 1, 'r': 12,'7' :4}
c = d.items()
print c
运行输出:[('y', 6), ('x', 5), ('r', 12), ('z', 1), ('7', 4)]
Iteritems方法的作用大致相同,但是会返回一个迭代器对象而不是列表
(7)更多方法:http://blog.csdn.net/anhuixinhua66/article/details/49450537
网友评论