# 集合就是字典,数据类型都是set,是通过set来创建
# 两个功能:1去重 2关系测试 3无序
s=set([1,3,"hello"])
s2={1,2,3}
print(type(s))
print(type(s2))
print(s2)
# 去重
l=[1,2,2,34,56]
print(set(l))
# set是可变数据类型
# print({{1,2}:"hello"}) # 运行时报错
# print({[1,2]:"hello"}) # 运行时报错
# set集合一定是不可变数据类型
# ll={1,2,2,[3,4.5]} # 报错,因为列表是可变数据类型
po={1,2,3,4,5,6}
# 关系测试
s1={"hello","1",2,3,}
s2={1,2,("a","b")} # 元组是不可变数据类型
# 求并集
s1.union(s2)
print(s1)
print(s1.union(s2))
print(s1|s2) #也可以这样求并集
# 求交集
print(s1.intersection(s2))
s1&s2 #也可以这样求交集
# 差集
print(s1.difference(s2))
print(s1-s2)
# 对称差值
print(s1.symmetric_difference(s2))
print(s1^s2)
-----------------------------------------------------------------
# python中唯一具有映射关系的数据类型:字典的查询效率高于列表
d={"name":"alex"} # name是唯一的
d={"name":"alex","name":"xie"} # 这样不报错,但xie会覆盖alex
#d={[1,2,3]:"yang","name":"egon"} # 主键唯一且不可变数据类型,例如字典、列表就可变,[]报错
#d={{}:"yang","name":"egon"} # 主键唯一且不可变数据类型,例如字典、列表就可变,[]报错
d={"1":"yang","name":"egon"} # 主键唯一且不可变数据类型,例如字典、列表就可变,[]报错
# "egon"不限什么类型,什么内容都行
print(d["name"])
v=d.get("name",None) #如果取不到,将用none代替
print(v)
print(type(None))
# 布尔值:非0都是true,验证
print(bool(-1))
print(bool([])) # 空内容为flase
print(bool([1,])) # 如果里面只有1个数时,一定要用“,”结尾,否则告诉程序这个是列表,元组也是,否则后面会导致一些错误
print(bool(None)) # None为flase
# print(d["name"]) #如果没值就会系统报错
v=d.get("nameddd",None)
print(v)
if not v: # 如果v=None
print("blank")
pass
# 遍历for循环
for i in "hello":
print(i)