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

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

Barbara Streisand
發布: 2024-12-28 01:49:09
原創
455 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板