我有两个列表,我需要从第一个列表中提取出那些第一个元素在第二个列表中存在的项。我下面贴的代码能够完美地工作,但是由于我正在处理数百万条记录,它非常缓慢。有没有人有任何想法如何进行优化?
a = [[1,0],[2,0],[3,0],[4,0]]
b = [2,4,7,8]
same_nums = list(set([x[0] for x in a]).intersection(set(b)))
result = []
for i in a:
if i[0] in same_nums:
result.append(i)
print(result)
a
(一次用于创建set(a)
,另一次用于交集)。如果您像 @schwobaseggl 在他的答案中实现的那样使用集合推导式(这就是我在上面的评论中建议的),则不需要这样做。 - GPhilo