Python中的for循环

83 投票
11 回答
244844 浏览
提问于 2025-04-16 07:00

在C/C++中,我可以写出这样的循环

for(int k = 1; k <= c; k += 2)

那么在Python中怎么做呢?

我可以这样写

for k in range(1, c):

在Python中,这样的写法和

for(int k = 1; k <= c; k++)

在C/C++中的效果是一样的。

11 个回答

31

这个答案很好,但对于那些想用 range() 的人来说,使用的方法是:

range(end)

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

range(start,end)

 >>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

range(start,end, step)

 >>> list(range(0, 30, 5))
[0, 5, 10, 15, 20, 25]
93

试试这个:

for k in range(1,c+1,2):
60

你还应该知道,在Python中,用整数索引来遍历列表是不太好的写法,而且速度也比其他方法慢。如果你只是想查看列表或字典中的每一个项目,直接遍历列表或字典就可以了。

mylist = [1,2,3]
for item in mylist:
    print item

mydict  = {1:'one', 2:'two', 3:'three'}
for key in mydict:
    print key, mydict[key]

这样做实际上比上面的用range()的代码要快,而且省去了多余的i变量。

如果你需要在列表中直接修改某些项目,那确实需要用到索引,但其实还有更好的方法:

for i, item in enumerate(mylist):
    mylist[i] = item**2

再次强调,这种方法不仅更快,而且被认为更易读。这是从C++转到Python时需要改变的主要思维方式之一。

撰写回答