python集合简介
-由一个或者多个确定的元素构成
Python集合就是一个容器,容器内含有任意个无序元素(对象)
-集合内对象不重复
-集合成员可做字典中的键
-不支持索引(序列),不支持键索引(字典)
Python集合为可变集合和不可变集合
-可变集合set
支持add,remove操作,不能做为字典的键
-不可变集合frozenset
不支持可以作为字典的键,不能更改,不支持add,remove操作
Python集合为可变集合和不可变集合小结
可变集合元素可增加,减少
-add ,updata,remove方法
-clear方法
不可变集合,创建后不能改变
-可使用copy方法
-不能使用add,updata,remove,clear等
-可变集合和不可变集合混合运算,结果类型要考虑先后
-集合不支持序列的索引操作,不支持字典的键索引操作
-不可变集合可以做字典键,可变集合不可以做字典键
>>> s=set()
>>> s
set()
>>> type(s)
<class 'set'>
>>> s=set((1,4,2))
>>> s
{1, 2, 4}
>>> s=set(["a","c","b"])
>>> s
{'b', 'a', 'c'}
>>> s=set("123456")
>>> s
{'4', '5', '3', '1', '6', '2'}
>>> s=set("123456")
>>> s
{'4', '5', '3', '1', '6', '2'}
>>> d={1:"yy",2:"zz"}
>>> d
{1: 'yy', 2: 'zz'}
>>> s=set(d)
>>> s
{1, 2}
使用{}创建可变集合
>>> s={1,2}
>>> s
{1, 2}
>>> s={1,2,3,8,2}
>>> s
{8, 1, 2, 3}
>>> s={1,"abc",0,(1,2)}
>>> s
{(1, 2), 0, 'abc', 1}
forzenset
-创建不可变集合,可以做字典的键
-frozenset()
-forzenset(iterable)
>>> s=frozenset()
>>> s
frozenset()
>>> type(s)
<class 'frozenset'>
>>> s=frozenset("abcd")
>>> s
frozenset({'b', 'a', 'd', 'c'})
>>> s=frozenset((1,2,8,4))
>>> s
frozenset({8, 1, 2, 4})
>>> s=frozenset([1,2,5])
>>> s
frozenset({1, 2, 5})
>>> d
{1: 'yy', 2: 'zz'}
>>> s=frozenset(d)
>>> s
frozenset({1, 2})
集合运算
并集(多个集合的全集)
由所有属于集合A或属于集合B的元素所组成的集合,称为集合A与B的并集(Union),去重。
A | B 读作:A并B
>>> A={1,2,3}
>>> B={4,5,6}
>>> A|B
{1, 2, 3, 4, 5, 6}
交集(多个集合的公共部分)
-由属于集合A且属于集合B的元素所组成的集合,叫做集合A与B的交集
A&B 读作A交B
>>> A={1,2,3}
>>> B={2,5,6}
>>> A & B
{2}
补差/相对补集
-两个集合(A和B)的差补或相对补集是指一个集合C,该集合中的元素,只属于集合A,而不属于集合B、
-A-B
>>> A={1,2,3}
>>> B={1,4,5}
>>> A-B
{2, 3}
对称差分(^)
-两个集合(A和B)的对称差分是指另外一个集合C,该集合中的元素,只能是属于集合A或者集合B的成员,不能同时属于两个集合。
-A^B
>>> A={1,2,3}
>>> B={1,2,3,4}
>>> A^B
{4}
集合运算
集合等价,不等价(相等,不相等)运算
== 等于
!=不等于
>>> s1={1,2,3}
>>> s2=set((1,2,3))
>>> s1==s2
True
>>> s1 is s2
False
>>> s3=frozenset((1,2,3))
>>> s3==s2
True
>>> s3==s1
True
子集、超集
-两个集合(A和B)的差补或相对补集是指一个集合C,该集合中的元素,只属于集合A,而不属于集合B。
A-B
>>> A={1,2,3}
>>> B={1,2,3,4}
>>> A-B
set()
>>> B-A
{4}
>>> A>B
False
>>> A<B
True
混合集合类型操作
A可变集合
B不可变集合
>>> A={1,2,3}
>>> B=frozenset({1,2,3,4})
>>> A|B
{1, 2, 3, 4}
>>> A^B
{4}
>>> A-B
set()
>>> B-A
frozenset({4})
成员关系(in ,not in)
-判断一个对象是否是集合内的元素
>>> A={1,2,3}
>>> 1 in A
True
>>> 4 in A
False
>>> A={1,2,3}
>>> 1 not in A
False
>>> 4 not in A
True
遍历集合元素
可以是for in 遍历集合元素
-使用可变集合和不可变集合
>>> A
{1, 2, 3}
>>> for i in A:
... print(i)
...
1
2
3