该总结来源于网络王顺子的课程课件
1、概念
无序的, 不可随机访问的, 不可重复的元素集合
与数学中集合的概念类似,可对其进行交、并、差、补等逻辑运算
分为可变集合和非可变集合
set为可变集合,可进行增,删,改
frozenset为不可变集合,创建好之后, 无法增删改
2、定义
可变集合set
s ={1,2,3,4}
s =set(iterable)
其中iterable可以是字符串、列表、元组、字典等
但是为dict时,只会获取提Key作为set的元素
s = set([1,2,3]) print(s)
结果:{1, 2, 3}
集合推导式
s= set(x**2 for x in range(1, 10) if x % 2 == 0)
s= { 推导式}
s = set(x ** 2 for x in range(1, 10) if x % 2 == 0) print(s)
结果:{16, 64, 4, 36}
不可变集合frozenset
fs =frozenset(iterable)
其中iterable可以是字符串、列表、元组、字典等
但是为dict时,只会获取提Key作为set的元素
集合推导式
s = frozenset(x**2 for x in range(1, 10) if x% 2 == 0)
s = frozenset(x ** 2 for x in range(1, 10) if x % 2 == 0) print(s)结果: frozenset({16, 64, 4, 36})
注意
1. 创建一个空集合时, 需要使用set() 或者 frozenset(), 不能使用 s = {}会被识别成为字典
2. 集合中的元素, 必须是可哈希的值
如果一个对象在自己的生命周期中有一哈希值(hash value)是不可改变的,那么它就是可哈希的(hashable)的
暂时理解为 不可变类型
3. 如果集合中的元素值出现重复, 则会被合并为1个