【发布时间】:2018-09-24 16:04:36
【问题描述】:
我有一个列表如下:
list=[]
*some code to append elements to list*
list=[['a','bob'],['a','bob'],['a','john']]
我想浏览此列表并将所有 'bob' 实例更改为 'b' 并保持其他实例不变。
for x in list:
for a in x:
if "bob" in a:
a.replace("bob", 'b')
打印出x后还是和list一样,但不是如下:
list=[['a','b'],['a','b'],['a','john']]
为什么更改没有反映在列表中?
【问题讨论】:
-
你正在通过
for a in x复制列表中的东西,而不是直接指向x的元素。 -
旁注:从不隐藏内置插件。使用
list_或L而不是list作为变量名。 -
@jpp 或者最好是描述内容的不太通用的东西...
names或letter_and_name或其他东西... :)