当调用len("1234567890")时,性能是常数的,即O(1),还是与字符串的长度成线性关系,即根据字符串的长度(在本例中,字符串的长度为n=10)?如果持续的表现,为什么?如果是线性性能,有什么想法可以提高获得字符串长度的性能吗?谢谢。
使用Python2.7。
你好,林
发布于 2016-06-16 01:38:47
检查一下:
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)。创建字符串时,字符串的大小存储在对象中。
https://stackoverflow.com/questions/37848483
复制相似问题