映射类型 字典 (python)
1字典操作
1.1字典创建
>>> dict1={}
>>> dict2={'name':'earth','port':80}
>>> dict((['x',1],))
{'x': 1}
>>> {}.fromkeys(['x','y'],0)
{'y': 0, 'x': 0}
1.2字典访问
>>> for key in dict2:
print key,dict2[key]
name earth
port 80
1.3字典更新
>>> dict2
{'name': 'earth', 'port': 80}
>>> dict2['name']='venus' #字典更新
>>> dict2
{'name': 'venus', 'port': 80}
>>> dict2['size']=5678 #字典新增
>>> dict2
{'size': 5678, 'name': 'venus', 'port': 80}
1.4字典删除
>>> del(dict2['size']) #删除key为size的条目
>>> dict2
{'name': 'venus', 'port': 80}
>>> dict2.clear() #删除dict2中的所有条目
>>> dict2
{}
>>> dict2={'size': 5678, 'name': 'venus', 'port': 80}
>>> dict2.pop('name') #删除并返回key为name的条目
'venus'
>>> dict2
{'port': 80, 'size': 5678}
>>> del dict2 #删除整个dict2
>>> dict2
Traceback (most recent call last):
File "<pyshell#51>", line 1, in <module>
dict2
NameError: name 'dict2' is not defined
1.5操作符[]
键查找操作符,它和序列类型里单一元素的切片操作符相似。对字典类型,用键做唯一参数进行查询。 >>> dict2['name'] 'earth'
1.6操作符in,not in
has_key()方法会在未来版本中弃用,推荐使用in/not in. >>> 'port' in dict2 True >>> 80 not in dict2 True
2内建函数
dict()
copy() 浅拷贝
clear() 删除所有元素
del() 删除某个元素,或者整个对象
pop(key[,default])
fromkeys(seq,val=None)
get(key,default=None)
has_key(key)
items() 返回键值对元组的列表
keys() 返回键的列表
setdefault(key,default=None)
dict.update(dict2) 将dict2的元素更新到dict中
3字典的键
字典中的值没有任何限制。可以是任何Python对象。但是字典中的键是有类型限制的。
3.1每个键只对应一个值
一个键对应多个值是不允许的,字典的键重复赋值时,取最后的赋值。
3.2键必须是可哈希的
所有不可变的类型都是可哈希的。
用元组做为有效的键,必须限制元组中只包含像数字字符串这样不可变的类型。