遍历字符串Python的最佳实践?

时间:2020-01-28 22:30:31

标签: python performance time-complexity

当使用for循环遍历字符串时,将字符串转换为列表然后循环遍历会更好吗?我问的原因是因为字符串是不可变的,所以我不确定它是否在某种程度上变得无效?

所以

a = list("hello")
for i in a:
    pass

优于

a = "hello"
for i in a:
    pass

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

如前所述,惯用的方法是简单地遍历字符串。实际上,声明

a = list("hello")

需要遍历字符串以创建列表。

也就是说,如果要遍历同一字符串(很多次),那么(在支付了转换为列表的费用之后)通过列表进行迭代的速度会更快

# string
$ python -m timeit -s "x='a'*10000" "for i in x: i"
10000 loops, best of 3: 137 usec per loop

# raw list
python -m timeit -s "x=list('a'*10000)" "for i in x: i"
10000 loops, best of 3: 113 usec per loop

答案 1 :(得分:2)

简单地遍历字符串而不将其转换为列表更习惯:

job_1, job_2, job_3, job_4
相关问题