如何从具有较大嵌套列表的匹配元素列表创建列表
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'])]
我有一个简单的列表:
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'])]