一、集合
集合分可变集合set和不可变集合frozenset两种。是一个无序不重复元素集。
1.1 集合的创建
1.1.1方法一
a=set()
type(a)
a=set([])
type(a)
a=set([1,2,3,])
a=set("abc")
a
a=set((1,2,3))
a
a=set({1:2,3:3})
a
a=set({1:2,3:3}.values())
a
a=set({1:2,3:3}.items())
a
1.1.2方式二
a={1,2,3,4}
type(a)
1.2集合的新增
1.2.1 add方式新增
a.add("a")
a.add("b")
a.add("c")
a
1.2.2 update方式新增
a.update("abc")
a.add("abc")
a
1.3遍历集合
for i in a:print (i)
for index,i in enumerate(a):print (index,i)
1.4 删除集合
1.4.1 remove方式
a.remove("b")
a
1.4.2 discard方式
查找元素并删除:如果存在就删除,如果没找到,则什么也不做;该函数没有返回值。
a=set([1,2,3,4])
a.discard(1)
print(a)
1.4.3 pop函数
删除并返回集合的第一个元素,如果为空引发KeyError错误
a=set((1,2,3,4))
a.pop()
a
1.4.4 clear函数
a=set([1,2,3,4,5])
a.clear()
print(a)
1.5 集合的copy和len函数
s1=set([1,2,3,4,5])
s2=s1.copy()
print(s1,id(s1),s2,id(s2))
print(len(s1))
1.6 集合交、差、并集合
a=set("abcd")
b=set("cdef")
#&交集
a&b
#并集
a|b
#差集
a-b
b-a
a^b
s1=set("abcd")
s2=set("cdef")
print(s1^s2)
#两个集合的不同之处
s1.difference(s2)
s2.difference(s1)
1.7集合转换
list(a)
set(list(a))
tuple(a)
1.8超集与子集
s1=set("abcd")
s2=set("ab")
s2.issubset(s1)
s1.issuperset(s2)
a>b
a==b
a!=b
1.9不可变集合
该元素中的内容是不可改变的
s1=frozenset("python")
print(type(s1))
s1.add("123")