字典是“键值对”的无序可变序列,字典中每一个元素都是一个键值对
包含键对象和值对象,可以通过键对象实现快速获取,删除,更新对应值对象
- 键是任意的不可变数据,比如:整数,浮点数,字符串,元组
- 键不可重复
- 值可以任意数据,并且可以重复
1.字典的创建
1.{}和dic{}
a = {'name':'xx','age':18,'job':'none'}
b = dict(name='xx',age=18)
c={}
d=dict()
2.zip
k = ['name','age','job']
v=['xx',18,'none']
d=dict(zip(k,v))
3.fromkeys()
f = dict.fromkeys(['name','age','job'])
#{'name':None,'age':None,'job':None}
2.字典元素的访问
1.通过键获得值,若键不存在则抛出异常
a = {'name':'xx','age':18,'job':'none'}
b = a['name']#'xx'
2.get()方法获得值,键不存在返回None(还可以指定不存在时返回什么)
a = {'name':'xx','age':18,'job':'none'}
b=a.get('name')
c=a.get('gender',不存在)
3.列出所有键值对
a = {'name':'xx','age':18,'job':'none'}
b= a.items()
4.列出所有键和值
a = {'name':'xx','age':18,'job':'none'}
b = a.keys()
c=a.values()
5.len()键值对个数
a = {'name':'xx','age':18,'job':'none'}
num = len(a)
6.检测一个键是否在字典中
a = {'name':'xx','age':18,'job':'none'}
print('name' in a)
3.字典元素的添加,修改,删除
1.给字典新增键值对,如果键值对已存在,则覆盖旧的键值对,如果不存在则新增键值对
a = {'name':'xx','age':18,'job':'none'}
a['gender']='m'
a['age']=19
2.使用update()将新字典中所有键值对加入旧的字典对象上面,如果键有重复,直接覆盖
a = {'name':'xx','age':18,'job':'none'}
b = {'name':'jx','age':19,'job':'none','address':'cs'}
a.update(b)
3.字典中元素的删除,可以用pop()删除指定键值对并返回对应值对象 , del()方法 ,clear()清空键值对
a = {'name':'xx','age':18,'job':'none'}
del(a['name'])
age=a.pop('name')
r1=popitem()#随即删除键值对
4.序列解包
a = {'name':'xx','age':18,'job':'none'}
name,age,job=s #默认对键进行操作
print(name) #name
name,age,job=s.items() #键值对
print(name) # ('name','xx')
name,age,job=s.values() #值