使用for循环遍历python中的列表 [英] Iterating over a list in python using for-loop
问题描述
我有一个关于遍历python中的列表的问题.
假设我有一个列表:row = ['1', '2', '3']
,并且想要将其元素转换为整数,以便:row = [1, 2, 3]
.
I have a question about iterating over a list in python.
Let's say I have a list: row = ['1', '2', '3']
and want to convert its element to integers, so that: row = [1, 2, 3]
.
我知道我可以通过列表理解来做到这一点:
I know I can do it with list comprehension:
row = [int(i) for i in row]
或for循环:
for i in range(len(row)):
row[i] = int(row[i])
我的问题与range(len(row))
部分有关.有人可以以外行友好的方式回答,为什么我可以做这样的事情:
My question concerns range(len(row))
part. Can someone answer in layman friendly way, why I can do something like this:
for i in row:
print(i)
但是我不能这样做:
for i in row:
row[i] = int(row[i])
推荐答案
当您执行for i in row
时,i
接受row
中的值,即'1'
,然后是'2'
,然后是'3'
.
When you do for i in row
, i
takes the values in row
, i.e. '1'
, then '2'
, then '3'
.
这些是字符串,不能作为列表索引使用.列表索引应为整数.在执行range(len(row))
时,循环使用最大为列表大小的整数.
Those are strings, which are not valid as a list index. A list index should be an integer. When doing range(len(row))
you loop on integers up to the size of the list.
顺便说一句,更好的方法是:
By the way, a better approach is:
for elt_id, elt in enumerate(list):
# do stuff
这篇关于使用for循环遍历python中的列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!