首页 > 解决方案 > 循环中的变量“i”是什么?

问题描述

我在编码挑战中看到了以下代码,我不知道为什么它返回 3,但请检查代码并告诉我你的想法。

myList = [1,2,3,4]
for i in myList:
   i += 1
print(myList[-2])

当我看到代码时,我说它会打印 4,因为在循环中我们在列表中的所有整数中添加了 1,并且[-2]应该给我倒数第二个值,根据我的想法是 4。

我知道我在这里遗漏了一些东西,但我不知道它是什么,所以如果有人可以向我解释这一点,我将不胜感激。可能我不明白i,我不确定。

标签: pythonpython-3.x

解决方案


解释

该行:

for i in myList

迭代list的项目myList,而不是索引。

其中加一的行i += 1不会将新值分配给列表,因此保持不变。

怎么修

但是,如果我们更改代码以迭代索引:

for i in range(len(myList))

我们现在可以更改列表中的值:

myList[i] += 1

代码修复:

myList = [1,2,3,4]
for i in range(len(myList)):
   myList[i] += 1

# 4
print(myList[-2])

一些忠告

在 Python 中使用小写、下划线分隔的名称来命名变量很方便。

myList也会如此my_list

它不会改变程序的行为方式,但对你未来的队友来说更具可读性。


推荐阅读