集合
集合(set):集合是无序的、不重复的数据集合,它本身是可变的,但里面的元素是不可变类型(这里要注意,即使是含有列表的元组也不可以,必须是完全不可变类型)
1.集合的创建
# 1.集合的创建
s = {1, 2, 3, 1, 2, 3}
print(s, type(s))
# 注意点: 集合的元素必须是不可变数据类型
s = {}
print(s, type(s))
# 注意点2: 空集合不能使用{},而要使用set{}
s = set()
print(s, type(s))
2.集合的特征
# 2.集合的特征
# 不支持 + * index slice (因为集合无序不重复的)
# 支持成员操作符in not in
print(1 in {1, 2})
3.集合的常用操作
集合增加元素
# 3. 集合的常用操作
# 3-1) 增加
# add: 添加单个元素
# update: 添加多个元素
s = {1, 2, 3}
s.add(100)
print(s)
s = {1, 2, 3}
s.update({4, 5, 6})
print(s)
集合删除元素
# 3-1) 删除
# remove: 如果元素存在,删除,否则报错
# discard: 如果元素存在,删除,否则do nothing
# pop:随机的删除元素,集合为空,否则报错
# clear :删除结合中的所有元素
s = set()
s.clear()
print(s)
s = {1, 2, 3}
s.clear()
print(s)
s = {1, 2, 3}
s.remove(1)
print(s)
s.discard(100)
print(s)
s = {1, 2, 3}
s.pop()
print(s)
集合的查看
# 3-3).查看
# 并集: s1 - s2
# 交集: s1 & s2
# 对称差分:s1 ^ s2 并集 - 交集
# 并集: s1 | s2
# 子集:s1.issubset(s2) s2是s1的子集吗?
# s1.isdisjoint(s2) s1和s2没有交集吗?
s1 = {1, 2, 3}
s2 = {1, 2}
print(s1 - s2)
print(s1 & s2)
s1 = {1, 2, 3}
s2 = {1, 2, 4}
print(s1 ^ s2)
print(s1 | s2)
print(s1.issubset(s2))
print(s1.isdisjoint(s2))
拓展
# 4.拓展: frozenset不可变的集合
s = frozenset({1, 2, 3})
print(s,type(s))
字典
1.字典的创建
# 1.字典的创建dict
# key-value 对或者键值对
d = {"name":"westos","age": 18, "city":"西安" }
print(d, type(d))
2.字典的特性
# 2.字典的特征
# 不支持 + * index slice (因为集合无序不重复的)
# 支持成员操作符in not in
d = {"name":"westos","age": 18, "city":"西安" }
print('name' in d) #True 判断是否为所有的key值成员
print('westos' in d) #False
3.字典的常用方法
查看
查看所有: keys, values, items
查看局部: d[key], d.get[key], d.get(key, default-value)
# 3.字典的常用方法
# 3.1 查看
d = {"name":"westos","age": 18, "city":"西安" }
print(d.keys()) #查看字典所有的key值
print(d.values()) #查看字典所有的value值
print(d.items()) #查看字典所有的key和value值
print(d["name"]) #查看key为name对应的value值 ,key对应的value不存在时报错
print(d.get('province')) #查看key为name对应的value值,如果不存在返回none.
print(d.get('province', "陕西")) # 查看key为name对应的value值,如果不存在返回默认值
增加和修改
# 3.2增加和修改
d = {"name":"westos","age": 18}
d['city'] = '西安' #key不存在就添加
print(d)
d['city'] = '北京' #key存在就修改value值
print(d)
d = {"name":"westos","age": 18}
d.setdefault('city',"西安") #key不存在就添加
print(d)
d.setdefault('city',"北京") #key存在就do nothing
print(d)
删除
# 3.3 删除
d = {"name":"westos","age": 18}
d.pop('name')
print(d)
d = {"name":"westos","age": 18}
del d['age']
print(d)
便利字典
# 4 .便利字典
d = {"name":"westos","age": 18, "city":"西安" }
#默认情况下,字典只会遍历key值
for item in d:
print(item)
for item in d.items():
print(item)
for key,value in d.items():
print(f"key={key} ,value={value}")