为了账号安全,请及时绑定邮箱和手机立即绑定

获取两个列表列表或空列表的交集

获取两个列表列表或空列表的交集

HUWWW 2022-01-05 10:33:16
我有两个形状相同的列表列表。list1 = [[1,2,3], [], [4,5], []]list2 = [[1,2], [7], [4,5], []]我需要这个列表列表:[[1,2], [], [4,5], []]我怎样才能得到它?
查看完整描述

3 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

假设list1list2中的每个列表只包含不同的元素,并且您不关心输出中元素的顺序,您可以使用set交集来帮助您:

output = [list(set(l1) & set(l2)) for l1, l2 in zip(list1, list2)]


查看完整回答
反对 回复 2022-01-05
?
慕村225694

TA贡献1880条经验 获得超4个赞

通过较短列表的索引获取每个子列表。


[list(set(list1[x]) & set(list2[x])) for x in range(min(len(list1), len(list2)))]

# [[1, 2], [], [4, 5], []]

这将产生一个与最短输入长度相同的列表。


查看完整回答
反对 回复 2022-01-05
?
九州编程

TA贡献1785条经验 获得超4个赞

循环并使用集合:


list1 = [[1,2,3], [], [4,5], []]

list2 = [[1,2], [7], [4,5], []]


intersections = [list(set(s1)&set(s2)) for s1, s2 in zip(list1, list2)]

输出:


[[1, 2], [], [4, 5], []]


查看完整回答
反对 回复 2022-01-05
  • 3 回答
  • 0 关注
  • 235 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号