当调用len("1234567890")
时,性能是常数,即O(1),或者与字符串的长度成线性关系,即O(n)根据字符串的长度(在本例中,长度为字符串是n = 10)?如果表现不变,为什么?如果是线性性能,任何想法如何提高获取字符串长度的性能?感谢。
使用Python 2.7。
的问候, 林
答案 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)。字符串的大小在创建时存储在对象中。