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

问题描述 投票:0回答:1

我有一个简单的列表。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在运行循环后变成了空的。如果有任何提示,将不胜感激。

谢谢

python-3.x loops nested-lists
1个回答
1
投票

您的代码有问题

你正在检查 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'])]

如果你得到了你的答案,请接受它,否则评论下来问题。

© www.soinside.com 2019 - 2024. All rights reserved.