1.字典
字典是键值对的无序可变序列
字典中的每个元素都是一个键值对,包含:“键对象”和“值对象”
键是任意不可变数据,如:整数、浮点数、字符串、元组。
1.1 字典的创建
1.通过[}, dict()来创建字典
a={‘name’:'ju’,'age'=18}#创建字典a
a=dict([('name','ju'),('age',18)])#创建字典a
b={}#空字典
b=dict()#空字典
2.通过zip()创建字典
k=['name','age','job']#创建列表k作为键
v=['ju',18,'lawyer']#创建列表v作为值
d=dict(zip(k,v))#创建字典d
3.通过fromkeys创建值为空的字典
a=dict.fromkeys(['name','age','job'])#其中三个键对应的值均为None
1.2 字典元素的访问
设定一个下列公用的字典对象
a=['name':'ju','age':18,'job':'lawyer']
1.通过键获得值,若键不存在,抛出异常
a['name']#获取字典a中name键对应的值ju
2.通过get()方法获取值
在该方法中,若键不存在,则返回None,也可以设定指定键不存在时默认返回的对象。
a.get('name')#获取字典a中name键对应的值ju
a.get('ddd','不存在')#当字典a中不存在键为ddd时,返回指定值字符串不存在
3.列出所有键值对
a.items()#列出字典a中所有键值对
a.keys()#列出字典a中所有的键
a.values()#列出字典a中所有的值
len(a)#计算字典a中键值对的个数
4.检测一个键是否在该字典中
'name' in a#返回布尔值,判断name是否是字典a中的键
1.3字典元素的添加、修改、删除
1.给字典新增键值对,如果键已存在,则覆盖旧键值对
a['address']='人民广场'#字典a中没有键address,因此a中新增该键值对
a['age']=16#字典a中键age对应的值修改为16
2.使用update()
update()可以将新字典中所有键值对全部添加到旧字典对象上,如果键有重复,则直接覆盖。
b={'money':1000,'sex':'alpha'}#字典b
a.update(b)#字典b中的键值对添加到字典a中
3.字典中的元素删除
del():删除指定键值对
clear()删除所有键值对
pop()删除指定键值对并反返回对应“值对象
a.claer()#清空字典a
del(a['name']#删除字典a中name的键值对
b=a.pop('age')
4.popitem()
随机删除和返回该键值对
使用格式:
b=a.popitem()
1.4 序列解包
可用于元祖、列表、字典,可以方便地对多个变量赋值
x,y,z=(20,30,50)#对xyz进行赋值,x=20,y=30,z=50
(a,b,c)=(10,20,30)
[a,b,c]=[10,20,30]
序列解包用于字典时,默认是对键进行操作
name,age,job=a#将字典a中的三个键依次赋值到三个变量中
name,age,job=a.values()#将字典a中的三个值依次赋值到三个变量中
name,age,job=a.items()#将字典a中的三个键值对以元组的形式依次赋值到三个变量中
2. 集合
集合无序,可变,不能重复。
集合底层是字典实现,集合的所有元素都是字典中的键对象。
2.1 集合的创建和删除
1.使用{}创建集合对象
a={3,5,7}
2.使用add()方法添加
a.add(9)#添加元素,a={3,5,7,9}
3.使用set()将列表,元组等可迭代对象转换成集合,如存在重复数据,则只保留一个
b=set(a)
4.remove()删除指定元素,clear()清空集合元素
a.remove(20)#删除指定元素
a.clear()#清空集合a
2.2 集合相关操作
a|b#取并集
a&b#取交集
a-b#取差集
a.union(b)#并集
a.intersection(b)#交集
a.difference(b)#差集