在Python中循环遍历列表时,我无法在没有列表推导的情况下修改元素.以供参考:
li = ["spam", "eggs"]
for i in li:
i = "foo"
li
["spam", "eggs"]
li = ["foo" for i in li]
li
["foo", "foo"]
Run Code Online (Sandbox Code Playgroud)
那么,为什么我不能通过Python中的循环修改元素呢?肯定有一些我想念的东西,但我不知道是什么.我敢肯定,这是一个重复的,但我无法找到一个关于这个问题,如果有一个链接,这将是绰绰有余.先感谢您!
我一直在写一个文本冒险游戏,有一次我需要从一个列表中取一个由用户输入给出的项目并将其移动到另一个列表.具体来说,有什么方法可以在知道项目名称时获取项目的索引,除了以下内容:
list_one = ["item one", "item two"]
index_one = list_one.index("item one")
Run Code Online (Sandbox Code Playgroud)
我在我的脚本中使用的代码是:
player.items.append(start_room.items.pop(start_room.items.index(next)))
Run Code Online (Sandbox Code Playgroud)
接下来是输入,这看起来非常混乱.如果有更简单的方法可以解决这个问题,请告诉我.谢谢!
有人可以解释为什么在Python中发生这种情况?
>>> a = [1, 2, 3]
>>> b = a
>>> b[0] = 2
>>> print a
[2, 2, 3]
>>> a[0] = 4
>>> print b
[4, 2, 3]
>>> b = [111]
>>> print a
[4, 2, 3]
Run Code Online (Sandbox Code Playgroud)
基本上,为什么我可以重新分配a或b中的元素并更改另一个元素,但如果我完全修改列表,则不能更改另一个元素?谢谢!