一。字典
字典由键以及相应的值组成,这种j键值对被称为,项。每个键与其值之间都用冒号分隔,项与项之间用逗号分隔。整个字典放在花括号中。在字典中,键必须是独一无二的,而值无需如此。
1.函数dict
可使用函数dict从其他映射或键值对序列创建字典。
items=[('name','Gumby'),('age',42)] >>> d=dict(items) >>> d {'name': 'Gumby', 'age': 42} >>> d=dict(name='Gumby',age=42) >>> d {'name': 'Gumby', 'age': 42}
如果是这样,将会报错,传入的必须是映射或者键值对。
items=[('name','zore','yyy')] >>> d=dict(items) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: dictionary update sequence element #0 has length 3; 2 is required
2.字典的基本操作
1 len(d)返回字典d包含的项数 2 d[k]返回与键k相关联的值 3 d[k]=v将值v关联到键k 4 del d[k]删除键为k的项 5 k in d检查字典d是否包含键为k的项
3.、添加项
>>> d[55]='ooo' >>> d {'name': 'Gumby', 'age': 42, 55: 'ooo'} >>> d.update(time='100',age='45')· >>> d {'name': 'Gumby', 'age': '45', 55: 'ooo', 'time': '100'} >>> d.update(title='Python Language Website') >>> d {'name': 'Gumby', 'age': '45', 55: 'ooo', 'time': '100', 'title': 'Python Language Website'} >>> d.update(name=fromzore) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'fromzore' is not defined >>> d.update(name='zore') >>> d {'name': 'zore', 'age': '45', 55: 'ooo', 'time': '100', 'title': 'Python Language Website'}
新项,值是字符串必须带引号,键可不必。
4.删除项
pop()是返回并删除项,需要参数。popitem()随机的删除字典项,不需要参数。虽然我试验的的时候,是由后往前逐个删除,但是的确是随机的,可能是我运气太好。
>>> d.pop('name') 'zore' >>> d {'age': '45', 55: 'ooo', 'time': '100', 'title': 'Python Language Website'} >>> d.popitem() ('title', 'Python Language Website') >>> d {'age': '45', 55: 'ooo', 'time': '100'} >>> d.popitem() ('time', '100') >>> d.popitem() (55, 'ooo')
5、清空项
>>> d.clear() >>> d {}
6、keys和values
方法keys返回一个字典视图,其中包含制定字典中的键,方法values返回一个由字典中的值组成的字典视图。
>>> d[1]=1 >>> d[2]=2 >>> d {1: 1, 2: 2} >>> d.values() dict_values([1, 2]) >>> d.keys() dict_keys([1, 2]) >>> d[3]=3 >>> d[4]=1 >>> d {1: 1, 2: 2, 3: 3, 4: 1} >>> d.keys() dict_keys([1, 2, 3, 4]) >>> d.values() dict_values([1, 2, 3, 1])
7、items方法
方法items返回一个包含所有字典项的列表,其中每个元素都为(key,value)的形式。字典项在列表中的排列顺序不确定。
>>> d.items()
dict_items([(1, 1), (2, 2), (3, 3), (4, 1)])
返回值属于一种名为字典视图的特殊类型。视图的一个优点是不复制,他们始终是底层字典的反映
>>> it=d.items() >>> (4,1) in it True >>> d[4]=4 >>> (4,1) in it False