一、什么是字典
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key->value)对用(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如下
d = {key1 : value1 , key2 : value2}
键必须是唯一的,但值不必。
值可以取任何数据类型,但键必须是不可变的
二、访问字典里的值
info = {'name':'SQYY','sex':'man','age':'19'}
print "info['name']:",info['name']
print "info['age']:",info['age']
以上实例结果:
info['name']: SQYY
info['age']: 19
三、修改字典元素
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对
#coding=utf-8
info = {'name':'SQYY','sex':'man','age':'19'}
#修改一个字典
info['age'] = 20
#添加一个字典
info['address'] = "China"
print "info['age']:",info['age']
print "info['address']:",info['address']
以上实例结果:
info['age']: 20
info['address']: China
四、删除字典元素
1、del 删除整个字典
#coding=utf-8
info = {'name':'SQYY','sex':'man','age':'19'}
print '删除前',info
del info
print '删除后',info
以上实例结果:
del后字典不存在,所以会显示报错
删除前 {'age': '19', 'name': 'SQYY', 'sex': 'man'}
删除后
Traceback (most recent call last):
File "C:\Python27\test.py", line 5, in <module>
print '删除后',info
NameError: name 'info' is not defined
2、clear清空整个字典
#coding=utf-8
info = {'name':'SQYY','sex':'man','age':'19'}
print '删除前',info
info.clear()
print '删除后',info
以上显示结果
删除前 {'age': '19', 'name': 'SQYY', 'sex': 'man'}
删除后 {}
五、字典包含的内置方法
序号 | 函数及描述 |
1 | dict.clear()删除字典内所有元素 |
2 | dict.copy()返回一个字典的浅复制 |
3 | dict.fromkeys(seq[, val])) 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值 |
4 | dict.get(key, default=None)返回指定键的值,如果值不在字典中返回default值 |
5 | dict.has_key(key)如果键在字典dict里返回true,否则返回false |
6 | dict.items()以列表返回可遍历的(键, 值) 元组数组 |
7 | dict.keys()以列表返回一个字典所有的键 |
8 | dict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
9 | dict.update(dict2)把字典dict2的键/值对更新到dict里 |
10 | dict.values()以列表返回字典中的所有值 |
11 | pop(key[,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
12 | popitem()随机返回并删除字典中的一对键和值。 |
#coding=utf-8
dict = {'name':'SQYY','age':'19'}
#字典中键值对的个数
print len(dict)
#返回一个包含字典所有KEY的列表
print dict.keys()
#返回字典所有的value的列表
print dict.values()
#返回一个包含(键,值)元祖的列表
print dict.items()
#如果key在字典中,返回True,否则返回False
print dict.has_key('name')
以上代码实例:
2
['age', 'name']
['19', 'SQYY']
[('age', '19'), ('name', 'SQYY')]
True