python-3.x - 比较两个列表列表,在保持结构的同时只保留匹配的元素
问题描述
给定以下两个嵌套列表:
alist = [[1,4,10,2], [4,1,12,10], [5,12,4,10], [5,10,2,4]]
blist = [[2,4,10,9,13,20], [12,9,20,33,Not,15], [3,1,2,7,4,8], [Not,9,8,3,4,5]]
我试图在保持列表结构的同时逐个列表比较两个列表,并且只保留这样的匹配项:
newlist= [[4,10,2], [12], [4], [5,4]]
在此先感谢您的帮助!
解决方案
您可以使用set.intersection()
(文档):
Not = object()
alist = [[1,4,10,2], [4,1,12,10], [5,12,4,10], [5,10,2,4]]
blist = [[2,4,10,9,13,20], [12,9,20,33,Not,15], [3,1,2,7,4,8], [Not,9,8,3,4,5]]
new_list = [list(set(i).intersection(j)) for i, j in zip(alist, blist)]
print(new_list)
印刷:
[[2, 10, 4], [12], [4], [4, 5]]
推荐阅读
- python - 了解 Python 中的 in 运算符
- kubernetes - k8s v1.13的“volumeDevices”与“volumeMounts”有什么区别
- java - 无法在 java 中捕获特定的时间段
- python - 在循环内增加 plt.subplot() 中绘图的 h 大小 - Python
- java - 使用媒体记录器android录制视频时无法缩放
- android - Facebook SDK 不支持 AndroidX
- java - 检索 SQLite 数据时 notifyDataSetChanged 不起作用
- c# - 使用 C# 互操作过滤 Excel 列中两个特定日期之间的日期
- sql - 如何在sql中使用触发器
- json - 画布在 LoadFromJson 后抛出污染错误