如何从具有较大嵌套列表的匹配元素列表创建列表

How to create a list from matching list of elements with a larger nested list

我有一个简单的列表: lst1 = ['a', 'b', 'c']

我还有一个嵌套列表,其中包含上述值以及更多值: lst2 = [ ('a',[ 'aaa', 'bbb']), ('b',[ 'xxx', 'yyy']), ('c',['ww', 'mm', 'ii']), ('e',['rr', 'rr', 'tt'])]

我一直在尝试将 lst1 中的所有公共元素与 lst2 中找到的元素进行匹配,并创建一个包含公共元素和嵌套值的新嵌套列表:

lst3 = [('a',[ 'aaa', 'bbb']), ('b',[ 'xxx', 'yyy']), ('c',['ww', 'mm', 'ii'])]

我的代码如下:

lst3 = [] 
for i in lst2:
    if i in lst1 and lst2[0]:
       lst3.append(i)

但 lst3 在 运行 循环后最终为空。 如有任何提示,我们将不胜感激。

谢谢

您的代码有问题

您正在检查 if i in lst1 and lst2[0]:,但从未出现 True。因为 ('a',[ 'aaa', 'bbb']) 不在 lst1.

解决方案

lst1 = ['a', 'b', 'c']

lst2 = [ ('a',[ 'aaa', 'bbb']), ('b',[ 'xxx', 'yyy']), ('c',['ww', 'mm', 'ii']), ('e',['rr', 'rr', 'tt'])]


ans = []
for i in lst2:
    x = i[0]
    if x in lst1:
        ans.append(i)
       
       
print(ans)

输出

[('a', ['aaa', 'bbb']), ('b', ['xxx', 'yyy']), ('c', ['ww', 'mm', 'ii'])]