繁体   English   中英

迭代字符串 Python 时的最佳实践?

[英]Best practice when iterating through string Python?

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

那么,是

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

a = "hello"
for i in a:
    pass

谢谢您的帮助。

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

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

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

word = "hello"
for letter in word:
    print(letter)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM