[英]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.