gpt4 book ai didi

python-2.7 - 测试所有元素是否在 Python 中的另一个列表中

转载 作者:行者123 更新时间:2023-12-01 00:24:44 25 4
gpt4 key购买 nike

我想测试 reference_list 是否包含 required_strings 中的所有项目。

required_strings = ['apple','banana','carrot']

reference_list = [['apple','tree'],
['banana','grass'],
['carrot','grass']]

我想得到 true 或 false 作为测试结果。预期的答案是“真”。

这是我尝试过的:

test = [i for i in reference_list if any(s in i for s in required_strings)]
print test

最佳答案

您可以使用 set 来做到这一点和 itertools.chain .我们将利用一些集合论并考虑 required_stringsreference_list作为集合,并证明 required_strings <= reference_list ;也就是说,所需的字符串集完全包含在引用列表中。

首先,使用itertools.chain压平浅列表。

from itertools import chain
chain(*reference_list) # Iterable object

接下来将链表和测试链表都化为集合比较看if one set is completely contained在另一个。

from itertools import chain
set(required_strings) <= set(chain(*reference_list))

如果你热衷于使用chain , 那么你可以使用 sum(list_of_lists, []) 而是减少它。

set(required_strings) <= set(sum(reference_lists, []))

但是,我强烈建议您使用 set而不是 list ,因为这类问题更适合 set .您也不必导入它;你可以像你一样使用这个类list .

关于python-2.7 - 测试所有元素是否在 Python 中的另一个列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30825399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com