我在脚本1中有一个列表
x = [apple,orange,banana,kiwi]
在脚本2中我有很多列表
a = [carrot,apple,celery,banana]
b = [tomato, kiwi]
c = [banana, pineapple, strawberry, avocado]
d = [dragon fruit, lettuce, orange]
我试图找出一个可以使用的循环,它将列表x与每个单独的列表进行比较,然后创建一个具有相似性的新列表。真实文件将有超过100个列表,而不是4。
list_one = [apple,banana]
list_two = [kiwi]
list_three = [banana]
list_four = [orange]
答案 0 :(得分:3)
set
实际上就是您所需要的。您可以将列表中间转换为集合,然后将其转换回如下列表:
x = ['apple','orange','banana','kiwi']
a = ['carrot','apple','celery','banana']
b = ['tomato', 'kiwi']
c = ['banana', 'pineapple', 'strawberry', 'avocado']
d = ['dragon fruit', 'lettuce', 'orange']
result_lists = []
for reference in (a,b,c,d):
result_lists.append(list(set(x).intersection(set(reference))))
print(result_lists)
>>> [['apple', 'banana'], ['kiwi'], ['banana'], ['orange']]
答案 1 :(得分:2)
您可以使用单行完成此操作:
out = [[j for j in i if j in x] for i in [a, b, c, d]]
收率:
[['apple', 'banana'], ['kiwi'], ['banana'], ['orange']]