补上:17至18日集合学习笔记

集合(set)  s=set(可以放可迭代的值:字符串  列表  元组   字典)     s=set("hello")

集合定义:由不同元素组成,集合中的数是一组无序的可哈希(不可变值)的值。

1.不同的元素(会自动弃除相同的元素)

2.无序(集合无付使用下标起值,因为是无序)

3.存放不可变值(数字   字符串  元组)

s={"test",12,34,(1,3,"hh")}——————集合方式(大括号)

查看类型:使用type(s)

集合的内置方法:

 add(增加值,只能不同值)

clear(清空)

copy(拷贝)

pop(删除,无序的删除任意值)

remove(删除指定的元素,如果删除的元素不存在会爆错)

discard(删除指定元素,不存在但是不爆错,继续可以执行下面的程序)

集合关系运算交、差、并的相关运算

补充:集合可以弃重,但是弃重后是无序的

l1=[11,22,33,33]
l2=[22,33,44,44]
l1_1=set(l1)#变为集合
l1_2=set(l2)#变为集合
print(l1_1,l1_2)

#求交集
print(l1_1.intersection(l1_2))
print(l1_1 & l1_2)
#求并集
print(l1_1.union(l1_2))
print(l1_1 | l1_2)

# 求差集 l1_1 - l1_2 是存在也左边的集合,不存在右边的集合
print(l1_1.difference(l1_2)) #最后是11
print(l1_1-l1_2)
print(l1_2.difference(l1_1))#最后是44
print(l1_2-l1_1)

#交叉补集     把2个合到一块,在除去相同的部分
print(l1_1.symmetric_difference(l1_2))
print(l1_2^l1_1)

集合的方法:
difference_update(求出不同,更新列表里面的内容)
intersection_update(求相同同,更新列表里面的内容)
issubset(判断子集 或是 父集,包含关系)
isdisjoint(判断2个集合是否有相同的内容)
update(并集union一样,只是更新对应的内容)——————同时可以更新多个值


补充:
s=frozenset("hello")#变成一个不可变的集合,不能进行任何操作
print(s)

集合去重,可以在转换成列表
原文地址:https://www.cnblogs.com/jianchixuexu/p/11518537.html