Python中的for循环
在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时需要改变的主要思维方式之一。