文章目录
1.字典介绍
- 每个字典元素都有键
(key)
和值(value)
两个属性 key
用于定义和标识字典元素,value
是字典元素对应的值value
可以是任意值;字典、列表不能作为字典的key
- 字典是用
键-值(key-value)
存储,具有极快的查找速度 - 字典是无序的
和list
比较,dict
有以下几个特点:
- 查找和插入的速度极快,不会随着
key
的增加而变慢 - 需要占用大量的内存,内存浪费多
注意:字典的key
必须是不可变对象
这是因为dict
根据key
来计算value
的存储位置,如果每次计算相同的key
得出的结果不同,那dict
内部就完全混乱了,这个通过key
计算位置的算法称为哈希算法(Hash)
要保证hash
的正确性,作为key
的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key
,而list
是可变的,就不能作为key
2.定义字典
- 字典元素使用
{}
括起来 - 键和值之间由冒号
(:)
分隔,元素间由逗号(,)
分隔
d={'name':'小明','sex':'男','age':'18'}
定义一个空字典
d={}
3.获取字典长度
d={'name':'小明','sex':'男','age':'18'}
v=len(d)
print(v)
运行结果
3
4.访问字典元素
d={'name':'小明','sex':'男','age':'18'}
print(d['name'])
print(d['sex'])
print(d['age'])
运行结果
小明
男
18
5.添加字典元素
d={'name':'小明','sex':'男','age':'18'}
d['score']=80
print(d)
运行结果
{'name': '小明', 'sex': '男', 'age': '18', 'score': 80}
6.合并两个字典
字典1.update(字典2)
d1={'name':'小明','sex':'男'}
d2={'age':'18','score':'80'}
d1.update(d2) #将d2合并到d1中,合并时直接加到末尾
print(d1)
d1={'name':'小明','sex':'男'}
d2={'age':'18','score':'80'}
d2.update(d1) #将d1合并到d2中,合并时直接加到末尾
print(d2)
运行结果
{'name': '小明', 'sex': '男', 'age': '18', 'score': '80'}
{'age': '18', 'score': '80', 'name': '小明', 'sex': '男'}
7.删除字典元素
<1>字典.pop()
d={'name':'小明','sex':'男','age':'18'}
d.pop('sex')
print(d)
运行结果
{'name': '小明', 'age': '18'}
<2>del 字典[键]
d={'name':'小明','sex':'男','age':'18'}
del d['name']
print(d)
运行结果
{'sex': '男', 'age': '18'}
<3>随机删除
字典.popitem()
d={'name':'小明','sex':'男','age':'18'}
v=d.popitem()
print(d,v)
运行结果
{'name': '小明', 'sex': '男'} ('age', '18')
8.判断某个元素是否存在在字典里
<1>使用in
关键字判断字典中是否存在指定键的元素
键 in 字典
d={'name':'小明','sex':'男','age':'18'}
print('name' in d)
print('number' in d)
运行结果
True
False
<2>通过dict
提供的get()
方法,如果key
不存在,可以返回None
,或者自己指定的value
d={'name':'小明','sex':'男','age':'18'}
v=d.get('name')
print(v)
v=d.get('number')
print(v)
v=d.get('number',-1)
print(v)
运行结果
小明
None
-1
9.遍历字典元素
for key in 字典.keys(): #遍历字典的键
访问 字典[key]
for value in 字典.values(): #遍历字典的值
访问 字典[value]
遍历键
d={'name':'小明','sex':'男','age':'18'}
for key in d.keys():
print(key)
运行结果
name
sex
age
遍历值
for value in d.values():
print(value)
运行结果
小明
男
18
遍历键和值
for key in d.items():
print(key)
for key in d.keys():
print('键'+key+'的值:'+d[key])
运行结果
('name', '小明')
('sex', '男')
('age', '18')
键name的值:小明
键sex的值:男
键age的值:18
10.字典的嵌套
访问嵌套字典
字典[键][键]
d={'name':{'first':'小明','last':'小李'},'age':'30'}
print(d['name']['first'])
运行结果
小明
11.根据序列,创建字典,并指定统一的值
dict.fromkeys(键,值)
v=dict.fromkeys(['123','666','good'],45)
print(v)
v=dict.fromkeys(['123','666','good'])
print(v)
运行结果
{'123': 45, '666': 45, 'good': 45}
{'123': None, '666': None, 'good': None}
12.设置值
字典.setdefault()
- 已存在,不设置,获取当前
key
对应的值 - 不存在,设置,获取当前
key
对应的值
d={'k1':123,'k2':'apple'}
v=d.setdefault('k1','v1')
print(d,v)
v=d.setdefault('k3',666)
print(d,v)
运行结果
{'k1': 123, 'k2': 'apple'} 123
{'k1': 123, 'k2': 'apple', 'k3': 666} 666
13.更新字典
字典.update()
d={'k1':123,'k2':'apple'}
d.update({'k1':1111,'k3':666})
print(d)
d={'k1':123,'k2':'apple'}
d.update(k1=111,k3=666)
print(d)
运行结果
{'k1': 1111, 'k2': 'apple', 'k3': 666}
{'k1': 111, 'k2': 'apple', 'k3': 666}
来源:https://blog.csdn.net/guoxiaorui666/article/details/99230011