嗨,有人可以向我解释为什么这个功能不能像我预期的那样工作吗?我知道我可以通过使用列表的索引来检查元素是否等于变量,但为什么这个方法不起作用?
期望 - 如果匹配特定值,我希望此函数更改列表中的元素(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
答案 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"
的值更改为"#"
。