我有一个关于在python中迭代列表的问题。
假设我有一个列表:row = ['1', '2', '3']
,并希望将其元素转换为整数,这样:row = [1, 2, 3]
我知道我可以通过列表理解做到:
row = [int(i) for i in row]
或用于循环:
for i in range(len(row)):
row[i] = int(row[i])
我的问题涉及{
for i in row:
print(i)
但我不能这么做:
for i in row:
row[i] = int(row[i])
执行
for i in row
时,i
获取row
中的值,即'1'
,然后'2'
,然后'3'
这些是字符串,作为列表索引无效。列表索引应为整数。在执行
range(len(row))
时,循环整数,直到列表的大小顺便说一下,更好的方法是:
当你这样做的时候
i是数组
row
中的元素。因此,i
将是'1'然后是'2'然后是'3'但是索引必须是整数,i是字符串,所以会出现错误
如果您这样做:
这仍然是一个错误,因为i是数组
row
中元素的整数。因此,我将是1,然后是2,然后是3但是
row[3]
将导致IndexError
,因为列表中只有3个元素,编号从0开始而在另一种情况下(第一种情况),
i
变为0,然后变为1,然后变为2,这不会导致错误,因为行[2]是有效的原因是:
下面是来自IDLE的一个示例:
迭代的项不是整数,不能用作列表的索引
以下内容将在一段时间内起作用,但最后会抛出一个
IndexError
:相关问题 更多 >
编程相关推荐