首頁 >後端開發 >Python教學 >為什麼我不能直接在'for”循環中修改 Python 列表?

為什麼我不能直接在'for”循環中修改 Python 列表?

Barbara Streisand
Barbara Streisand原創
2024-12-28 01:49:09428瀏覽

Why Can't I Modify a Python List Directly Within a `for` Loop?

Python 列表修改難題

在Python 中使用for 循環遍歷列表時,用戶可能會遇到意外的情況,即無法在不使用列表推導式的情況下更改其元素。

為什麼無法存取?

問題的癥結在於for i in li 循環結構的行為。在內部,它按如下方式迭代:

for idx in range(len(li)):
    i = li[idx]
    i = 'foo'

如所見, i 最初被分配了對列表中元素的引用。對 i 的任何後續修改只會影響局部變量,而不影響列表項本身。

解決困境

要解決此問題,可以利用列表推導式:

li = ["foo" for i in li]

或者,明確遍歷索引:

for idx in range(len(li)):
    li[idx] = 'foo'

或者,明確遍歷索引:

for idx, item in enumerate(li):
    li[idx] = 'foo'
或者,枚舉可以是用來簡化流程:

以上是為什麼我不能直接在'for”循環中修改 Python 列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn