集合:交差补集
集合:
1 # set 可变集合 2 # 特点:无序、不重复、元素是不可变类型。 3 4 # 利用集合去重 5 lis = ['张三', '李四', '王五', '李四'] # 创建一个列表 6 a = set(lis) # 将列表转换为集合,自动去重 7 print(a) 8 print(list(a)) # 将转换后的集合转换回列表 9 10 # 添加一个元素 add() 11 a.add('吴三') 12 print(a) 13 14 # 添加多个元素 update() 15 a.update('a', 'bc', '1', ['bc', 'ac']) # 此处'bc'将被迭代成独立元素,而列表元素将整体迭代不拆分 16 print(a) 17 18 # 删除 remove() 19 a.remove('王五') 20 print(a) 21 22 # 随机删除 pop() 23 a_1 = a.pop() 24 print(a_1, '被删除了') 25 print(a)
一、求交集
1 # 交集(共同部分):求相同爱好 2 # intersection() 或 & 3 4 man1_hobby = ['看书', '吃饭', '睡觉', '旅游', '拳击'] # 创建列表 5 man2_hobby = ['拳击', '看电影', '旅游', '潜水'] # 创建列表 6 7 man1_jihe = set(man1_hobby) # 将列表转为集合(set函数自动去重,并且集合是无序的) 8 man2_jihe = set(man2_hobby) # 将列表转为集合(set函数自动去重,并且集合是无序的) 9 10 same_hobby_1 = man1_jihe.intersection(man2_jihe) # 通过intersection()函数求交集 11 print(same_hobby_1) 12 # 也可以用 & 方式来求交集 13 same_hobby_2 = man1_jihe & man2_jihe # & 方法 14 print(same_hobby_2)
二、求并集
1 # 并集(多集合内容合到一起):两人一共有哪些爱好 2 # union() 或 | 3 4 man1_hobby = ['看书', '吃饭', '睡觉', '旅游', '拳击'] # 创建列表 5 man2_hobby = ['拳击', '看电影', '旅游', '潜水'] # 创建列表 6 7 man1_jihe = set(man1_hobby) # 将列表转为集合(set函数自动去重,并且集合是无序的) 8 man2_jihe = set(man2_hobby) # 将列表转为集合(set函数自动去重,并且集合是无序的) 9 10 all_hobby_1 = man1_jihe.union(man2_jihe) # 通过union()函数求俩集合的并集 11 print(all_hobby_1) 12 13 all_hobby_2 = man1_jihe|man2_jihe # 也可以用|符号来求并集 14 print(all_hobby_2)
三、求差集
1 # 差集(单独一个集合特有的内容):这个人特有的爱好 2 # difference() 或 - 符号 3 4 man1_hobby = ['看书', '吃饭', '睡觉', '旅游', '拳击'] # 创建列表 5 man2_hobby = ['拳击', '看电影', '旅游', '潜水'] # 创建列表 6 7 man1_jihe = set(man1_hobby) # 将列表转为集合(set函数自动去重,并且集合是无序的) 8 man2_jihe = set(man2_hobby) # 将列表转为集合(set函数自动去重,并且集合是无序的) 9 10 man1_jihe_just_1 = man1_jihe - man2_jihe # 差集,求man1这人特有的爱好 11 print(man1_jihe_just_1) 12 13 man1_jihe_just_2 = man1_jihe.difference(man2_jihe) # 或者用-符号,求man1这人特有的爱好 14 print(man1_jihe_just_2)
四、交叉补集
1 # 交叉补集:多个集合特有内容的集合 2 # symmetric_difference() 或 ^ 3 4 man1_hobby = ['看书', '吃饭', '睡觉', '旅游', '拳击'] # 创建列表 5 man2_hobby = ['拳击', '看电影', '旅游', '潜水'] # 创建列表 6 7 man1_jihe = set(man1_hobby) # 将列表转为集合(set函数自动去重,并且集合是无序的) 8 man2_jihe = set(man2_hobby) # 将列表转为集合(set函数自动去重,并且集合是无序的) 9 10 print(man2_jihe.symmetric_difference(man1_jihe)) # 用symmetric_difference()函数计算 11 print(man2_jihe^man1_jihe) # 或者^符号来计算

浙公网安备 33010602011771号