i = 0
while 1:
if mystr[i] == ',': break
i += 1
mystr = mystr[i+1:] + ', ' + latest_value
它假设每个逗号后面都有一个空格。如果有问题,可以使用:
i = 0
while 1:
if mystr[i] == ',': break
i += 1
mystr = mystr[i+1:].strip() + ', ' + latest_value
它只比原来的稍慢,但更坚固。你要决定你需要挤出多少速度。它们都假设字符串中会有逗号,并将引发
IndexError
如果一个人没有出现。安全版本是:
i = 0
while 1:
try:
if mystr[i] == ',': break
except IndexError:
i = -1
break
i += 1
mystr = mystr[i+1:].strip() + ', ' + latest_value
同样,这仍然比分裂字符串快得多,但确实以速度为代价增加了健壮性。
这是结果的时间。您可以看到,第四个方法明显快于第三个(最健壮的)方法,但比前两个方法稍慢。这是两个健壮的解决方案中最快的一个,除非你确定你的字符串中会有逗号(也就是说,如果字符串中没有逗号,就已经被认为是错误了),否则我无论如何都会使用它。
1000000个循环,最好是3个:每个循环1.34 usec
1000000个循环,最好是3个:每个循环1.34 usec
$python-mtimeit-s'来自字符串导入测试,方法3''方法3(测试[0],“10”)'
1000000个循环,最好是3个:每个循环1.5 usec
$python-mtimeit-s'来自字符串导入测试,方法4''方法4(测试[0],“10”)'
$python-mtimeit-s'来自字符串导入测试,方法5''方法5(测试[0],“10”)'
100000个循环,最好是3个:每个循环1.18 usec
这是