假设我有一个列表, a=[1,2,3]
并且我想知道其中的至少一个数字是否存在于另一个列表中,例如这个列表: b=[4,5,6,7,8,1]
换句话说,我想知道list中是否存在1,2或3 b
。我现在可以做类似的事情
def func(a, b):
for i in a:
if i in b:
return True
return False
但是,是否可能有一种方法可以使事情整齐?
有很多方法可以做到这一点。最直接的翻译是:
any_in = lambda a, b: any(i in b for i in a)
您还可以使用各种涉及集合的东西,例如:
any_in = lambda a, b: bool(set(a).intersection(b))
(这取决于元素a
是可哈希的,但如果这是真的,这很可能会更快地制定一套较大的出来的a
,并b
为任一方法)。
编辑:isdisjoint
比intersection
以下版本的Python 2.6和更高版本更好。很高兴了解到这一点。:)
问题内容: 我有两个清单说 现在,我想找出List2中是否存在List1的所有元素。在这种情况下,就全部存在。我不能使用子集函数,因为我可以在列表中重复元素。我可以使用for循环来计算List1中每个项目的出现次数,并查看它是否小于或等于List2中的出现次数。有一个更好的方法吗? 谢谢。 问题答案: 当出现次数无关紧要时,您仍可以通过动态创建集合来使用子集功能: 如果需要检查每个元素在第二个列表
问题内容: 我正在尝试比较两个列表,如果第二个列表中有第一个列表中的任何值,则只打印一条消息。 在此示例中,我要对进行求值,因为两个列表中都包含5。这行不通,而且我不确定比较这两个列表的最简单方法。 问题答案: 您可以用很多方法解决。一个很容易理解的方法就是只使用一个循环。 一个更紧凑的方法是使用和: 更好的是,可以将其替换为: 您还可以使用集合:
问题内容: 我有两个列表,一个包含 相册,文件对的 列表,另一个仅包含有关一张照片的信息- 相册 (位置0)和 文件 (位置1) 如何查看 照片 列表是否在 照片 列表中?就像字符串一样。 相册 , 文件的 位置无关紧要,因为不会有任何 文件 等于 相册 。 问题答案: 同样喜欢字符串。不仅如此,也是 如此 。也适用于列表中的列表: 对列表的成员资格测试仅迭代列表,并对每个元素使用相等性测试以查看
问题内容: 我有两个带有不同对象的列表。 我想检查list2中的元素是否存在于list2中,基于特定的属性(Object1和Object2具有(以及其他),一个共有属性(类型为Long),名为attributeSame)。 现在,我这样做是这样的: 但是我认为有一种更好,更快的方法可以做到这一点:)有人可以提出吗? 谢谢! 问题答案: 如果只需要测试基本相等性,则可以使用基本JDK来完成,而无需在
我有两个不同对象的列表。 我想根据特定的属性(Object1和Object2有一个共同的属性(类型为Long),名为AttributeName),检查list2中是否存在list1中的元素。 现在,我是这样做的: 但我认为有更好更快的方法可以做到这一点:)有人能提出吗? 谢谢
Spring Data JPA是否提供查询关键字来检查列表中包含的至少一个项目是否与另一个列表中包含的至少一个项目匹配。 这是我的查询: (*** 应该是我正在寻找的关键字。例如:包含,在,...但是我不知道哪个是正确的。) 更多信息:这是我的活动实体。 我想检索每个hashtag与列表中至少一个hashtag匹配的活动。 例如:给定数据库中包含的活动: 如果我提供以下标签列表: 我应该收到: 我