Python中列表的集合运算

后端开发 专栏收录该内容
169 篇文章 1 订阅

集合运算

集合的运算操作包括交集、并集、差集、补集,其中补集不适用于列表。

交集

无重复元素的列表

使用set进行交集计算。

1. 使用&计算

lis1,lis2=[1,2],[1]

print(list(set(lis1) & set(lis2)))

输出为:[1]

2. 使用intersection计算

lis1,lis2=[1,2],[1]

print(list(set(lis1).intersection(lis2)))

输出为:[1]

含重复元素列表

1. 列表推导式

lis1,lis2=[1,2,1],[1,2]

print([v1 for v1 in lis1 if v1 in lis2])

输出为:[1, 2, 1]

2. filter过滤器

lis1,lis2=[1,2,1],[1,2]

print(list(filter(lambda v: v in lis2,lis1)))

输出为:[1, 2, 1]

并集

无重复元素列表

1. 使用 |

lis1,lis2=[1,2],[3]

print(list(set(lis1)|set(lis2)))

输出为:[1, 2, 3]

2. 使用union

lis1,lis2=[1,2],[3]

print(list(set(lis1).union(lis2)))

输出为:[1, 2, 3]

含重复元素列表

1. 使用+

lis1,lis2=[1,2,1],[3]

print(lis1+lis2)

输出为:[1, 2, 1, 3]

2. 使用extend

lis1,lis2=[1,2,1],[3]
lis1.extend(lis2)

print(lis1)

输出为:[1, 2, 1, 3]

差集

无重复元素列表

1. 使用^

此方法与顺序无关,即所得结果是二者在彼此都不存在的元素

lis1,lis2=[1,2],[3]

print(list(set(lis1)^set(lis2)))

输出为:[1,2,3]

含重复元素列表

1. 使用difference

lis1,lis2=[1,2,3],[3]

print(list(set(lis1).difference(lis2)))

输出为:[1,2]

2. 列表推导式

lis1,lis2=[1,2,1],[1,2]

print([v1 for v1 in lis1 if v1 not in lis2])

输出为:[]

3. filter过滤器

lis1,lis2=[1,2,1],[1,2]

print(list(filter(lambda v: v not in lis2,lis1)))

输出为:[]
  • 0
    点赞
  • 1
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值