如何在Python中使用循环比较不同脚本中具有不同大小的多个列表

2024-05-10 03:51:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我在脚本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] 

Tags: 脚本apple列表listcelerybananafruitorange
2条回答

实际上,^{}就是你需要的。您可以将列表转换为集合,然后再转换回如下列表:

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']]

您可以使用一行代码来完成此操作:

out = [[j for j in i if j in x] for i in [a, b, c, d]]

收益率:

[['apple', 'banana'], ['kiwi'], ['banana'], ['orange']]

相关问题 更多 >