一尘不染

如何验证一个列表是否是另一个列表的子集?

python

我需要验证列表是否是另一个列表的子集-我想要的只是布尔返回值。

在相交后在较小列表上测试相等性是最快的方法吗?考虑到需要比较的数据集数量,性能至关重要。

根据讨论添加更多事实:

  1. 在许多测试中,两个列表中的两个列表是否相同?它作为静态查找表之一来执行。

  2. 需要列表吗?事实并非如此-静态查找表可以是执行效果最好的任何内容。动态命令是一种dict,我们从中提取密钥以执行静态查找。

在这种情况下,最佳解决方案是什么?


阅读 197

收藏
2021-01-20

共1个答案

一尘不染

Python为此提供的性能函数是set.issubset。但是,它确实有一些限制,使得不清楚它是否是您问题的答案。

列表可能包含多个项目并具有特定顺序。一套没有。此外,设置仅适用于可哈希对象。

您是在询问子集还是子序列(这意味着您需要一个字符串搜索算法)?在许多测试中,两个列表中的两个列表是否相同?列表中包含哪些数据类型?而且,这是否需要列出清单?

您的其他文章与字典和列表相交,使类型更清晰,并且确实推荐使用字典键视图来实现类似集合的功能。在那种情况下,之所以可以工作是因为字典键的行为就像一个集合(以至于在我们使用Python进行集合之前,我们都使用字典)。一个人想知道问题如何在三个小时内变得不那么具体。

2021-01-20