在Python中,如何通过匹配外部列表中的一个值来在列表中拉取具有的列表



我的数据是一个大的(链接的(列表,它由较小的列表(7500+(组成。在这些较小的列表中存在另一个以字符串为值的列表。列表A<--列出B的<--列出C(姓名(。

List_A = [['123', 'Hello World', '2020', ['john', 'mike', 'edgar'], 'N'],
['124', 'Hello Universe', '2021', ['harold', 'jessica', 'ashley'], 'Y'],
['125', 'Hello Milkyway', '2020', ['maria', 'tessa', 'rodrigo'], 'N']]
List_A.nodeat(0).value[3]
>>>> ['john', 'mike', 'edgar']
Outside this large list, I've created a string split list of names:
List_Outside = ['mike', 'maria']. 

我想创建一个新的列表(list_a_2(,其中只有列表B在列表C中的list_Outside中至少有一个匹配的名称。

所以List_A_2看起来像:

List_A_2 = [['123', 'Hello World', '2020', ['john', 'mike', 'edgar'], 'N'],
['125', 'Hello Milkyway', '2020', ['maria', 'tessa', 'rodrigo'], 'N']]

当然,我希望这适用于7500+个列表,所以我需要在for循环中使用索引。提前谢谢。

您可以使用any()来过滤列表:

List_A_2 = [l for l in List_A if any(w in List_Outside for w in l[3])]
print(List_A_2)

打印:

[['123', 'Hello World', '2020', ['john', 'mike', 'edgar'], 'N'], 
['125', 'Hello Milkyway', '2020', ['maria', 'tessa', 'rodrigo'], 'N']]

相关内容

  • 没有找到相关文章