两个list,并集、交集、差集

# -*- coding: utf-8 -*-

list1 = [1, 2, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5]
list2 = [5, 5, 6, 7, 8, 9]


# set集合
# 差集--两种情况
print(list(set(list1) - set(list2)))
print(list(set(list2) - set(list1)))

# 两个差集的并集
print(list(set(list1) ^ set(list2)))
# 并集--去重后
print(list(set(list1) | set(list2)))

# 交集--去重后
print(list(set(list1) & set(list2)))



# 列表推导式
# 差集--两种情况
print([i for i in list1 if i not in list2])
print([i for i in list2 if i not in list1])

# 并集---没有去重
# 求出总和
summary_list = []
summary_list.extend(list1)
summary_list.extend(list2)
# 总和-交集= 并集
print([i for i in summary_list if i not in set(list1) & set(list2)])

# 交集
print([i for i in list1 if i in list2])



# 大体分为两种方式获取 :
#     1. set集合
#     2. 列表推导式

posted @ 2020-06-29 08:38  疯狂列表推导式  阅读(273)  评论(0编辑  收藏  举报