我想比较两个嵌套列表。如果每个子列表的第一个元素之间存在匹配,我希望将匹配的元素添加到一个新列表中,以便进行进一步的操作。下面是一个例子,也是我迄今为止所尝试的: 例如:
x = [['item1','somethingelse1'], ['item2', 'somethingelse2']...]
y = [['item1','somethingelse3'], ['item3','somethingelse4']...]
到目前为止我所做的尝试:
match = []
for itemx in x:
for itemy in y:
if itemx[0] == itemy[0]:
match.append(itemx)
上面我尝试的是将匹配项追加到新列表中,但是我有两个很长的嵌套列表,上面我做的操作对于很长的列表来说非常慢。有没有更有效的方法来找出两个嵌套列表之间的匹配项
(这是在OP将问题从
append(itemx[0])
改为append(itemx)
之前)或者,如果内部列表总是成对的:
是的,使用具有恒定时间成员资格测试的数据结构。因此,使用
set
,例如:或者,更简洁地使用集合/列表理解:
IIUC使用
numpy
:相关问题 更多 >
编程相关推荐