了解 Python 循环中的列表修改
当尝试使用循环迭代列表时修改列表中的元素时,您可能会遇到更改似乎不持久的问题。此行为源于 Python 处理循环内分配的变量的方式。
核心问题
在 Python 中,当您在循环内分配引用循环中元素的变量时,列表(例如,对于 li 中的 i:),您不会修改列表本身,而是创建对该元素的新引用。因此,当您尝试修改 i 时,您实际上并没有更改列表中的值。
示例
考虑以下代码:
li = ["spam", "eggs"] for i in li: i = "foo" print(li) # Output: ["spam", "eggs"]
虽然你在循环中给 i 赋值了“foo”,但是 li 的值保持不变,因为 i 没有直接引用中的元素li 而是它们的副本。
解决方案
要在循环期间修改列表元素,您有多种选择:
以上是为什么在 Python 循环中修改'i”不会改变列表的元素?的详细内容。更多信息请关注PHP中文网其他相关文章!