for Python中的循环

new*_*int 56 python

在C/C++中,我可以有以下循环

__CODE__

在Python中如何做同样的事情?

我可以做这个

__CODE__

在Python中,它将与之相同

__CODE__ 在C/C++中.

car*_*sdc 75

试试这个:

for k in range(1,c+1,2):
Run Code Online (Sandbox Code Playgroud)

  • 作为旁注如果你使用python 2.x xrange更有效率. (8认同)
  • @GWW:xrange在技术上更有效_memory_,但除非你的范围非常大,否则很少有任何实际后果,而且3.x完全取消了'xrange'的名称,所以使用它更容易混淆新手而不是其他任何东西. (5认同)
  • @Nicholas Knight.我已经完成了测试,并且`for x inrange(1)`比我在范围(1)中的速度快得多,除非你真的想构建一个列表,否则永远不会使用`range`.速度的增加仅随着序列的大小增加而增加. (4认同)
  • @aaronasterling:也许你误解了,每个_loop_ 50-100微秒,而不是_iteration_.如果您关心这种速度,那么首先不应该使用Python.这并不是为了证明额外角色的合理性,而是关于那些将要回到py3k并且说"我被告知要使用xrange,但它不存在!"的新手的不必要混淆. (2认同)

buk*_*zor 44

您还应该知道,在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]
Run Code Online (Sandbox Code Playgroud)

这实际上比使用带有range()的上述代码更快,并删除了无关的i变量.

如果您需要就地编辑列表项,那么您确实需要索引,但仍有更好的方法:

for i, item in enumerate(mylist):
    mylist[i] = item**2
Run Code Online (Sandbox Code Playgroud)

同样,这既快又被认为更具可读性.这是从C++到Python时需要考虑的主要转变之一.

  • 问题中(回到第一个修订版)没有提到任何有关遍历数组的内容,甚至根本没有提到数组。For 循环不仅仅用于遍历数组,它们还用于*计数*。如果您只想打印“Hello World”五次怎么办?如果没有计数器,你会怎么做? (4认同)

小智 21

答案是好的,但对于想要这个的人来说,要做range()的形式是:

range(end):

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

range(start,end):

 >>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)

range(start,end, step):

 >>> list(range(0, 30, 5))
[0, 5, 10, 15, 20, 25]
Run Code Online (Sandbox Code Playgroud)


Pir*_*hah 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
Run Code Online (Sandbox Code Playgroud)


Oct*_*ane 6

在Python中,你通常有for循环而不是像C/C++这样的循环,但你可以使用下面的代码实现相同的功能.

for k in range(1, c+1, 2):
  do something with k
Run Code Online (Sandbox Code Playgroud)

Python中的参考循环.