集合
Python学习日记-day17
集合用 { } 表示,{}中有value是字典,没有value就是集合。
集合是无序的;
集合(set)是可变数据类型。
集合内元素一定是不可变数据类型。
s3={1,2,[3,4]} 会报错
集合主要作用:
1. 关系测试(如求两个列表里相同的元素)
交集:两个都有
差集:在列表a里有的,b里没有
对称差集:互相不在的
并集:把两个列表里的元素合并在一起,去重
2. 去重,天然去重
例子:找出两个集合中相同的
没用集合的时候:
python = ["alex", "jim", "Jessie", "Jack", "Aow"] linux = ["Jack", "laowang", "jim", "naicha"] python_and_linux = [] for i in python: if i in linux: python_and_linux.append(i) print(python_and_linux)
用集合的时候:
稍加改造:
python = {"alex", "jim", "Jessie", "Jack", "Aow", "jim"} linux = {"Jack", "laowang", "jim", "naicha"} print(python.intersection(linux)) # 交集,打印两个集合相同的,自动去除集合里重复的 print(python & linux) # 交集,打印两个集合相同的,和上面一样
print(python.difference(linux)) # 差集,打印python列表中与linux不一样的 print(linux.difference(python)) # 差集,打印linux列表中与python不一样的 print(linux - python) # 差集 print(linux.symmetric_difference(python)) #对称差集 print(python.union(linux)) # 联合,并集 print(python | linux) # 联合,并集 print(python.symmetric_difference(linux)) # 对称差集,互相不在的都打印 print(python ^ linux) # 对称差集,互相不在的都打印 linux.update(python) # 合并集合,把python合并到linux集合中 print(linux) linux.add("zhangsan") # 增加,如果再增加一个alex,增加不了,因为自动去重 linux.difference_update(python) # 求差集并赋值,把linux和python里不一样的打印出来并存到linux里 linux.discard("alex") # 删除alex,元素不存在不报错 linux.remove("alex") # 删除alex,元素不存在会报错 linux.pop() # 随机删除 print(linux.issubset(python)) # 子集,判断linux是不是python的子集 print(linux.issubset(python)) # 超集,父集 print(linux.isdisjoint(python)) # 如果两个集合没有交集返回True
共有 0 条评论