更改存储的列表值

时间:2018-04-23 02:18:32

标签: python

嗨,有人可以向我解释为什么这个功能不能像我预期的那样工作吗?我知道我可以通过使用列表的索引来检查元素是否等于变量,但为什么这个方法不起作用?

期望 - 如果匹配特定值,我希望此函数更改列表中的元素(stored)。在此示例中,IE机会字母c#符号。

结果 - 打印的列表(stored)没有区别并最终打印[a,b,c,d,e]

代码

stored = ["a", "b", "c", "d", "e"]
def if_match():
  for letters in stored:
    if letters == "c":
      letters = "#"
  print stored

1 个答案:

答案 0 :(得分:0)

它不起作用,因为letters是一个仅用于迭代列表的变量。要实际更改您需要执行的值:

for x in range(len(stored)):
    if stored[x] == "c":
        stored[x] = "#"

或者您可以通过列表枚举如下:

for index, value in enumerate(stored):
    if value == "c":
        stored[index] = "#"

这实际上会将"c"的值更改为"#"