• 集合输出的结果是无序的

定义

a_set = set() # 定义一个空集合必须要这样定义
a_set = {} # 里面不能为空值
a_set = {"wuyin", "woju"} # 等价于:a_set = set(("wuyin", "woju")),但是当这样定义时会提示你不符合pe8规范

set("wuyin") # 这样定义会将括号里面的内容拆分开,例如这里输出:{'n', 'i', 'y', 'u', 'w'} ,每次输出的顺序都是不一样的

set()里面多个字符串会报错,要用set()定义多个字符串必须将多个字符串用括号括起来,建议用a_set = {}这种形式

取值和取索引

集合是无序的,所以无法取值和取索引

去重功能

a_set = {"wuyin", "woju", "wuyin"} # wuyin重复了,只会留下一个,输出为无序的
set(("wuyin", "woju", "wuyin")) # wuyin重复了,只会留下一个,输出为无序的

a_set = set("wuyyiiwcss") # 每个字母只会留下一个,输出为无序的

集合推导式

a_set = {i for i in "abracadra"} # 输出:{'a', 'd', 'c', 'r', 'b'}
a_set = {i for i in "abracadra" if i not in "abc"} # 输出:{'r', 'd'}

成员运算符 in, not in

a_set = {"wuyin", "woju"}
print("wuyin" in a_set) # 会返回True,因为“wuyin” 在里面

a_set = set("wuyin")
print("w" not in a_set) # 会返回False, 因为 w 在里面,但他是not in

集合之间的运算 , 一般用于set() 定义的

a = set('abracadabra')
b = set('alacazam')
print(a)
print(a - b) # a 和 b 的差集, 在两者都去重的前提下,取a中有而b无的元素
print(a | b) # a 和 b 的并集, 在两者都去重的前提下,取a和b的全部元素
print(a & b) # a 和 b 的交集, 在两者都去重的前提下,取a和b都有的元素
print(a ^ b) # a 和 b 中不同时存在的元素, 在两者都去重的前提下,取a有b无的和b有a无的

输出结果:
{'b', 'c', 'a', 'r', 'd'}
{'r', 'b', 'd'}
{'b', 'c', 'a', 'z', 'm', 'r', 'l', 'd'}
{'c', 'a'}
{'z', 'b', 'm', 'r', 'l', 'd'}

集合的内置方法

add() 为集合添加元素
union() 返回两个集合的并集
update() 给集合添加元素
discard() 删除集合中指定的元素
pop() 随机移除元素
remove() 移除指定元素
clear() 移除集合中的所有元素
copy() 拷贝一个集合
difference() 返回多个集合的差集
intersection() 返回集合的交集
intersection_update() 返回集合的交集。
symmetric_difference() 返回两个集合中不重复的元素集合。
difference_update() 移除集合中的元素,该元素在指定的集合也存在。
isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
issubset() 判断指定集合是否为该方法参数集合的子集。
issuperset() 判断该方法的参数集合是否为指定集合的子集
symmetric_difference_update() 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。

集合的内置函数

del set # 会把这个集合从内存中删除,和del(set)效果一样
min() # 取集合去重后的最小值,一般针对的是数字,若是字符串的话会根据第一个字母的ascii码排序 如:“abd”和“a”:先比较a的ascii,若还不能比较出来向后一位
max() # 取集合去重后的最大值,一般针对的是数字,若是字符串的话会根据第一个字母的ascii码排序 如:“abd”和“a”:先比较a的ascii,若还不能比较出来向后一位
len() # 统计去重后的集合元素个数
sum() # 统计去重后的集合的和,前提是元素为数值类型
id() # 取集合的地址

Last modification:November 17th, 2020 at 07:08 pm
创作不易,请随意赞赏