red*_*rah 5 python if-statement tuples list
我想知道是否有任何好的理由在python if语句中更喜欢列表而不是元组,反之亦然.因此,以下功能相同,但在性能和编码风格方面优于另一个,还是无关紧要?
if x in (1,2,3):
foo()
if x in [1,2,3]:
foo()
Run Code Online (Sandbox Code Playgroud)
我似乎已经养成了使用元组的习惯,如果有2或3个值和列表的任何更长的时间,我认为因为根据我的经验,元组往往很短并列出很长,但这似乎有点武断,可能不必要地不一致.
我会对人们可以给出的任何一个比另一个更好的例子感兴趣.
干杯
a的初始化tuple(至少在CPython中)产生的字节码比a少list- 但它真的没什么值得担心的.我相信会员测试几乎是一样的(尽管没有经过测试).
对于纯粹的成员资格测试,查找语义是相同的.从Python 2.7开始,它的写入要好得多(并且增加了它仅仅是成员资格测试的含义):
if x in {1, 2, 3}:
pass # do something
Run Code Online (Sandbox Code Playgroud)
在此之前:
if x in set([1,2,3]):
pass # do something
Run Code Online (Sandbox Code Playgroud)
只是看起来有点kludgy ...