Skip to main content
 首页 » 编程设计

python之在列表列表中查找匹配值

2025年05月04日14JustinYoung

我正在尝试遍历 python 2.7.5 中的列表列表并返回那些在第二个列表中找到第一个值的列表,如下所示:

#python 2.7.5 
list1 = ['aa', 'ab', 'bb', 'bc', 'cc'] 
list2 = [['aa', 1, 3, 7],['de', 2, 2, 1],['bc', 3, 4, 4]] 
 
list3 = [] 
for x in list1: 
    for y in list2: 
        if x == y: 
            list3.append(y) 

所以我希望 list3 包含 [['aa',1,3,7],['bc', 3, 4, 4]] 但我只是得到了整个 list 2.

请您参考如下方法:

尝试一种更接近您想要的更简单的方法:

for e in list2: 
    if e[0] in list1: 
        list3.append(e) 

您需要 e[0] 因为 list2 是列表的列表。您也可以使用 filter() function 将其写在一行中:

list3 = filter(lambda e: e[0] in list1, list2) 

或使用 list comprehension :

list3 = [e for e in list2 if e[0] in list1]