字典是一种通过名字或者关键字引用的得数据结构,key 类型需要时被哈希,其键可以是数字、字符串、元组,这种结构类型也称之为映射。字典类型是Python中唯一內建的映射类型。
注意,浮点数比较很不精确,因此千万不要用浮点数作为key!
python字典包含了11个内置方法,具体如下:
| 序 号 | 函数 | 描述 |
| 1 | clear(self) | 删除字典内所有的元素 |
| 2 | copy(self) | 返回一个字典的浅copy ,俗称赋值 |
| 3 | fromkeys(*args,**kwargs) | 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
| 4 | get(self,k,d=None) | 返回指定键的值,如果值不在字典中返回default值 |
| 5 | items(self) | 以列表返回可遍历的(键, 值) 元组数组 |
| 6 | keys(self) | 以列表返回一个字典所有的键 |
| 7 | pop(self,k,d=None) | 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值 |
| 8 | popitem(self) | 随机返回并删除字典中的一对键和值 |
| 9 | setdefault(self,k,d=None) | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
| 10 | update(self,E=None,**F) | 把self的东西更新到外面字典 |
| 11 | values(self) | 以列表返回字典中的所有值 |
具体举例子解释如下:
1,字典的键不能是list类型:
list = [1,2,3,4]
info2 = {list:'number'}
结果:
Traceback (most recent call last):
File "D:/字典.py", line 2, in <module>
info2 = {list:'number'}
TypeError: unhashable type: 'list'
2,list/set/dict 均不可被哈希 ,int、float、str、tuple:是可以哈希的
1 list.__hash__;
#结果为None
2 set.__hash__;
#结果为None
3 dict.__hash__;
#结果为None
4 print(int.__hash__);
# <slot wrapper '__hash__' of 'int' objects>
5 print(float.__hash__);
#<slot wrapper '__hash__' of 'float' objects>
6 print(str.__hash__);
#<slot wrapper '__hash__' of 'str' objects>
7 print(tuple.__hash__);
#<slot wrapper '__hash__' of 'tuple' objects>
3,增
info ={'name':'jamnes','age':'32','work':'basketplayer'}
info['sex'] = 'fale'
print(info)
结果:
{'name': 'jamnes', 'age': '32', 'work': 'basketplayer', 'sex': 'fale'}
4,删
4-1 pop():删除指定key的键值对
info ={'name':'jamnes','age':'32','work':'basketplayer'}
info.pop('work')
print(info)
结果:
{'name': 'jamnes', 'age': '32'}
4-2 clear():清除所有的键值对
info ={'name':'jamnes','age':'32','work':'basketplayer'}
info.clear()
print(info)
结果:
{}
5,改
info ={'name':'jamnes','age':'32','work':'basketplayer'}
info['age']='33'
print(info)
结果:
{'name': 'jamnes', 'age': '33', 'work': 'basketplayer'}
6,查
6-1 get():通过给定的key,查找对应的value,如果给定的可以在字典中无,则返回None
info ={'name':'jamnes','age':'32','work':'basketplayer'}
a =info.get('age')
print(a)
结果:
32
6-2 setdefault():通过给定的key,查找对应的value,如果给定的可以在字典中无,则返回None,
同时在字典中增加'test': None键值对
info ={'name':'jamnes','age':'32','work':'basketplayer'}
a =info.setdefault('age')
print(a)
print(info)
b =info.setdefault('sex')
print(b)
print(info)
结果:
32
{'name': 'jamnes', 'age': '32', 'work': 'basketplayer'}
None
{'name': 'jamnes', 'age': '32', 'work': 'basketplayer', 'sex': None}
7,更新
7-1update()
一,更新里面有的信息,就是改变
info ={'name':'jamnes','age':'32','work':'basketplayer'} info2 = {'name':'wade','age':'33','work':'basketplayer'} info.update(info2) print(info)
结果:
{'name':'wade','age':'33','work':'basketplayer'}
二,更新里面没有的信息,就是添加
info ={'name':'jamnes','age':'32','work':'basketplayer'}
info2 = {'honor':'3 champions'}
info.update(info2)
print(info)
结果:
{'name': 'jamnes', 'age': '32', 'work': 'basketplayer', 'honor': '3 champions'}