簡體   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