集合:交差补集

集合:

 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)
集合set

 

 

一、求交集

 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)                         # 或者^符号来计算

 

posted @ 2018-06-27 14:20  宝露  阅读(292)  评论(0)    收藏  举报