gpt4 book ai didi

python - 在 python 中的列表 VS 元组条件中

转载 作者:太空宇宙 更新时间:2023-11-04 02:00:02 24 4
gpt4 key购买 nike

我想知道使用 in tuplein list 条件之间的最佳实践是什么,并知道为什么,如下面的场景:

my_variable = 'A'
if my_variable in [2, 'A', None]:
return True
elif my_variable in (2, 'A', None):
return True

如果可能,请列出这种情况下元组/列表的优点/缺点。

最佳答案

listtuple 对于 x in container 检查的时间复杂度都是 O(n)。

但是,set 对此检查的复杂度为 O(1)(大多数情况下,由于哈希冲突,最坏情况的时间复杂度会更差)。

查看列表、元组和具有 100 万个元素的集合的这些时间:

from timeit import Timer

li = list (range(1, 1000000))
t = tuple(range(1, 1000000))
s = set (range(1, 1000000))

def x_in_list():
999999 in li

def x_in_tuple():
999999 in t

def x_in_set():
999999 in s

print(min(Timer(x_in_list).repeat(5, 5)))
print(min(Timer(x_in_tuple).repeat(5, 5)))
print(min(Timer(x_in_set).repeat(5, 5)))

输出

0.08769642199999961
0.09637485699999981
9.329999999252436e-07

关于python - 在 python 中的列表 VS 元组条件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55904156/

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