使用for循环遍历python中的列表 [英] Iterating over a list in python using for-loop

查看:658
本文介绍了使用for循环遍历python中的列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个关于遍历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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆