for Python中的循环

时间:2010-11-13 02:37:22

标签: python

在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 ++中。

9 个答案:

答案 0 :(得分:74)

尝试使用:

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

答案 1 :(得分:42)

你还应该知道,在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时需要考虑的主要变化之一。

答案 2 :(得分:21)

答案很好,但对于想要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]

答案 3 :(得分:13)

如果你想在Python中编写一个循环来打印一些整数no等,那么只需复制并粘贴这段代码,它就可以运行很多

# Display Value from 1 TO 3  
for i in range(1,4):
    print "",i,"value of loop"

# Loop for dictionary data type
  mydata = {"Fahim":"Pakistan", "Vedon":"China", "Bill":"USA"  }  
  for user, country in mydata.iteritems():
    print user, "belongs to " ,country

答案 4 :(得分:5)

在Python中,你通常需要for循环而不是C / C ++之类的循环,但你可以使用以下代码实现相同的功能。

for k in range(1, c+1, 2):
  do something with k

参考Loop in Python.

答案 5 :(得分:3)

正如您提到的,在C / C ++中,我们可以执行以下操作

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

我们知道这里k从1开始,一直到步长为1或2的(预定义)c。我们可以在Python中执行以下操作

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

检查description of method Intent.setPackage()的深度。

答案 6 :(得分:1)

python中的range()函数是一种生成序列的方法。序列是可以索引的对象,例如列表,字符串和元组。一种检查序列的简单方法是尝试从中检索索引的元素。也可以使用collections模块中的Sequence Abstract Base Class(ABC)进行检查。

from collections import Sequence as sq
isinstance(foo, sq)

range()带有三个参数startstopstep

  1. start:所需序列的起始元素
  2. stop:所需序列的第(n + 1)个元素
  3. step:序列元素之间所需的间隔。这是一个可选参数,默认为1。

要获得所需的结果,可以使用以下语法。

range(1,c+1,2)

答案 7 :(得分:-1)

使用它代替for循环:

k = 1
while k <= c:
   #code
   k += 1

答案 8 :(得分:-2)

以下是一些迭代整数范围和字符串的示例:

#(initial,final but not included,gap)
for i in range(1,10,2): 
  print(i); 
1,3,5,7,9

# (initial, final but not included)  
# note: 4 not included
for i in range (1,4): 
   print(i);
1,2,3 

#note: 5 not included
for i in range (5):
  print (i);
0,1,2,3,4 

# you can also iterate over strings
myList = ["ml","ai","dl"];  

for i in myList:
  print(i);
output:  ml,ai,dl