gpt4 book ai didi

python - 检查两个列表一致性的快速方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:46:35 24 4
gpt4 key购买 nike

我需要检查两个列表的一致性,例如返回 True如果第一个列表不包含第二个列表中不存在的元素,并且如果 count相似的元素是相同的。到目前为止,我得出了以下结论:

def is_consistent(spec_a, spec_b):
for a in spec_a:
if spec_a.count(a) != spec_b.count(a):
return False
return True

但我需要循环执行,所以我想知道,它可以更快吗?

最佳答案

如果我正确地理解了这个问题,也许你可以使用一个Counter:

from collections import Counter
def is_consistent(spec_a, spec_b):
c1 = Counter(spec_a)
c2 = Counter(spec_b)
result = c1 - c2
return all(result[key] == 0 for key in c1)

循环是不可避免的——它总是以某种形式存在。事实上,我这里有 3 个循环。 (每个 Counter 一个,最后最明显的一个)。但是,我的解决方案避免的操作是 .count,它是另一个嵌套在 inside 另一个循环中的隐式循环。

嵌套循环通常是您要消除的循环,因为如果外层循环迭代 N 次,内层循环迭代 N 次,则总共有 N*N 次迭代。将其与我的解决方案进行比较,后者只有 ~3*N 次迭代(3 个循环,每个循环大约有 N 次迭代)。如果 N 很大,您可以看到这将如何导致大量操作被保存。

关于python - 检查两个列表一致性的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20226782/

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