开始有多好?


问题内容

text.startswith('a')

优于

text[0]=='a'

知道文本不是空的,我们只对文本的第一个字符感兴趣。


问题答案:

我同意其他以first开头的文件更易读,您应该使用它。也就是说,如果在这种特殊情况下性能是一个大问题,请对其进行基准测试:

$ python -m timeit -s 'text="foo"' 'text.startswith("a")'
1000000 loops, best of 3: 0.537 usec per loop

$ python -m timeit -s 'text="foo"' 'text[0]=="a"'
1000000 loops, best of 3: 0.22 usec per loop

所以text[0]是amost 2.5倍的速度-但它是一个非常快捷的操作;
根据系统的不同,每次比较可节省〜0.3微秒。除非您在时间紧迫的情况下进行数百万次比较,否则我仍然会选择更具可读性的startwith。