Python 中的 for 循环
- 2025-01-20 09:06:00
- admin 原创
- 143
问题描述:
在 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++ 中。
解决方案 1:
尝试使用这个:
for k in range(1,c+1,2):
解决方案 2:
您还应该知道,在 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 时需要做出的主要思维转变之一。
解决方案 3:
答案是好的,但是对于想要这样做的人来说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]
解决方案 4:
如果你想在 Python 中编写一个循环来打印一些整数等,那么只需复制并粘贴此代码,它就会很有效
# 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
解决方案 5:
在 Python 中,通常使用 for in 循环,而不是像 C/C++ 那样使用通用的 for 循环,但您可以使用以下代码实现相同的功能。
for k in range(1, c+1, 2):
do something with k
参考Python 中的循环。
解决方案 6:
在 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):
请检查此处以了解更多详细信息。
解决方案 7:
Python 中的函数range()
是一种生成序列的方法。序列是可以索引的对象,如列表、字符串和元组。检查序列的一种简单方法是尝试从中检索索引元素。也可以使用Class(ABC)
collections 模块中的 Sequence Abstract Base 进行检查。
from collections import Sequence as sq
isinstance(foo, sq)
需要range()
三个参数start
,stop
和step
。
start
:所需序列的起始元素stop
:所需序列的第 (n+1) 个元素step
:序列元素之间所需的间隙。它是可选参数,默认为 1。
为了获得所需的结果,您可以使用以下语法。
range(1,c+1,2)
解决方案 8:
您可以使用以下格式。
for i in range(0, 10, 2):
print(i,' ', end='')
print('')
这将打印;
0 2 4 6 8
解决方案 9:
尽管要求使用 FOR STATEMENT,只是为了记录作为奖励,或者使用 WHILE,它会是:
k=1
while k<c:
#
# your loop block here
#
k+=2
解决方案 10:
以下是迭代整数范围和字符串的一些示例:
#(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
解决方案 11:
使用它来代替 for 循环:
k = 1
while k <= c:
#code
k += 1
扫码咨询,免费领取项目管理大礼包!