在Python 2.7中获取字符串长度的性能

时间:2016-06-16 01:34:30

标签: python python-2.7

当调用len("1234567890")时,性能是常数,即O(1),或者与字符串的长度成线性关系,即O(n)根据字符串的长度(在本例中,长度为字符串是n = 10)?如果表现不变,为什么?如果是线性性能,任何想法如何提高获取字符串长度的性能?感谢。

使用Python 2.7。

的问候, 林

1 个答案:

答案 0 :(得分:3)

检查:

C:\>py -m timeit -s "x='a'*1000" "len(x)"
10000000 loops, best of 3: 0.0959 usec per loop

C:\>py -m timeit -s "x='a'*10000" "len(x)"
10000000 loops, best of 3: 0.0902 usec per loop

C:\>py -m timeit -s "x='a'*100000" "len(x)"
10000000 loops, best of 3: 0.0927 usec per loop

它是O(1)。字符串的大小在创建时存储在对象中。