5
in
运算符的运行速度与python的长度成正比吗?Python“in”运算符速度
所以,
len(x) #10
if(a in x): #lets say this takes time A
pass
len(y) #10000
if(a in y): #lets say this takes time B
pass
是A> B?
in
运算符的运行速度与python的长度成正比吗?Python“in”运算符速度
所以,
len(x) #10
if(a in x): #lets say this takes time A
pass
len(y) #10000
if(a in y): #lets say this takes time B
pass
是A> B?
对此没有一般的答案:它取决于a
,特别是b
的类型。例如,如果b
是列表,那么是的,in
需要最坏情况时间O(len(b))
。但是,例如,如果b
是字典或集合,则in
取预期时间时间O(1)
(即,恒定时间)。
关于“是A> B?”,您没有定义A
或B
。如上所述,您的in
哪个语句运行得更快没有一般答案。
所以如果我需要检查一个字符串是否存在作为一个字典中的键。那么它将花费O(1)。但如果我需要查看一个字符串是否出现在列表中,那么O(n)是正确的? –
或者即使我有一组字符串和一个字符串列表,set中的x将比list中的x更快? –
平均情况是。 – lennon310