# 创建字典
shop = {"怡宝":"2元","可比克":"3元","烟":"非卖品" }
# 字典的key可以为元组,数值,字符串 不能为列表,因为列表是可变的
shop1 = {(20,30):"元组",3:"int","滴滴":"string"}
# 根据字典查询
#输出整个字典
print(shop)
# 普通查询,只能查询已存在的key
print(shop["怡宝"])
# 查询key是否存在在字典中
print("怡宝"in shop)
#优化查询,若要查询的key不存在,返回none,none我们可以指定默认返回值
print(shop.get("可口可乐","该key不在字典中"))
# 查询字典中所有的键
print(shop.keys())
# 查询字典中所有的值
print(shop.values())
# 查询字典中键 值 一共多少对
print(len(shop))
#新增
# 我们像新增一个键与值
# 字典名称[key] = value
shop["可口可乐"] = "3.5元"
print(shop)
# 元组的方式添加进去
shop["苹果","橘子"] = "2","3"
print(shop)
# 修改
shop["可口可乐"] = "3.4元"
print(shop)
# 删除
del shop["可口可乐"]
print(shop)
# 删除整个shop字典内容
shop.clear()
print(shop)
# 删除字典
# del shop
# print(shop)
# 集合
# 集合和字典类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
# 集合(set)是一个无序的不重复元素序列,集合内的数据没有先后关系
# 创建
set = {"a","b","c","d","e","f","g"}
print(set)
# 集合重复数据会被过滤,可以拿来用作去重
set1 = {1,2,3,3,3,3,3,3,3}
print(set)
# 查
# 判断元素是否在集合之内
print(1 in set1)
# 判断元素不在集合之内
print(1 not in set1)
# 新增
# 向集合内增加元素,如果添加的元素已经存在的话,则不执行任何操作
set.add("dd")
print(set)
# 通过remove(key)方法可以删除元素:
set.remove("dd")
print(set)
# 随机删除元素
set.pop()
print(set)
# 集合的内建函数
# 求长度
print(len(set))
# 最大值
print(max(set1))
# 最小值
print(min(set1))
# 求和
print(sum(set1))
# 集合中的运算
# 集合中包含了交集、并集、差集、子集、超集
# 交集:交集,顾名思义就是取两个(或多个)集合相交(相同)的部分,然后生成一个新集合
s1 = {1,2,3,4}
s2 = {7,2,4,9,10}
# 方式1
print(s1&s2)
# 方式2
print(s1.intersection(s2))
# 并集返回不同集合的所有元素形成一个新集合
# 方式1:
print(s1.union(s2))
# 方式2:
print(s1|s2)
#差集将两个或多个集合的差值作为一个新集合返回
# 方式1:
print(s1.difference(s2))
print(s2.difference(s1))
# 方式2:
print(s1- s2)
print(s2 -s1)