在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 ++中。
答案 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
答案 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):
答案 6 :(得分:1)
python中的range()
函数是一种生成序列的方法。序列是可以索引的对象,例如列表,字符串和元组。一种检查序列的简单方法是尝试从中检索索引的元素。也可以使用collections模块中的Sequence Abstract Base Class(ABC)
进行检查。
from collections import Sequence as sq
isinstance(foo, sq)
range()
带有三个参数start
,stop
和step
。
start
:所需序列的起始元素stop
:所需序列的第(n + 1)个元素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