【发布时间】:2019-01-15 20:13:36
【问题描述】:
我有一个关于在 python 中迭代列表的问题。
假设我有一个列表:row = ['1', '2', '3'],并且想要将其元素转换为整数,这样:row = [1, 2, 3]。
我知道我可以通过列表理解来做到这一点:
row = [int(i) for i in row]
或for循环:
for i in range(len(row)):
row[i] = int(row[i])
我的问题涉及range(len(row)) 部分。有人可以用外行友好的方式回答吗,为什么我可以这样做:
for i in row:
print(i)
但我不能这样做:
for i in row:
row[i] = int(row[i])
【问题讨论】:
-
尝试在解释器中运行
['1', '2']['1']。你可以使用字符串作为列表的索引吗? -
谢谢,现在我明白了。我认为
for i适用于索引,所以它从第一个元素到最后一个元素,没有得到它的值,就像在列表理解中一样。 -
i只是一个任意变量名,它不会影响正在发生的事情。你可以叫它banana,它的工作原理都是一样的。 -
@juanpa.arrivillaga 我的意思是在for循环中,变量
i或banana取列表元素的值,所以如果列表是['3',1'','2'],首先i会具有3的值,但在列表理解中使用相同的for i in第一个i是0
标签: python list for-loop iteration