【发布时间】:2020-10-02 11:19:12
【问题描述】:
我有两个列表
list1 = ['B', 'C', 'D']
list2 = [['1', 'A'], ['2', 'B'], ['3', 'D'], ['5', 'C']]
并且想要返回那些包含 list1 元素的 list2 的子列表。 到目前为止,我尝试使用任何:
result = []
for l2 in list2:
if any (item in l2 for item in list1):
result.append(l2)
一种天真的方法
for l2 in list2:
for l1 in l1:
if l1 in l2:
result.append(l2)
但我只设法重复空列表。 结果应该是
result = [['2', 'B'], ['5', 'C']]
不确定,我哪里出错了。有没有办法使用列表推导或混合列表推导和“任何”功能?
【问题讨论】:
-
['3', 'D']在哪里? -
您的第一个代码 sn-p 应该给出您预期的输出,而不是空列表。你运行你的代码了吗?
-
你的第二个代码 sn-p 也是如此 - 除了错字:
for l1 in list1:
标签: python python-3.x list any