[英]Python For loops in While loop, starting for loop with a specific value
我几天前开始学习Python,并在编写代码时遇到了一个程序。
这是我想用C ++代码做的事情
number = SOME_NUMBER;
while(1) {
for(int i=number; i<sizeOfArray; i++) {
// do something
}
number = 0;
}
基本上,对于我的for循环的第一次迭代,我想从数字开始。 然后每隔一段时间我都会通过for循环,我想在0开始。
我现在能想到的那种愚蠢的想法是做一些像:
number = SOME_NUMBER
for i in range(0, len(array)):
if i != number:
continue
// do something
while True:
for i in range(0, len(array)):
// do something
这是最好的方式还是有更好的方法?
这有什么问题?
starting_num = SOME_NUMBER
while True:
for i in xrange(starting_num, len(array)):
# do code
starting_num = 0
它完全符合你的要求。
但是,我认为有更好的方法来做事,特别是如果解决方案似乎“hacky”。
如果你想知道你想做什么,也许有更好的方法
我不明白为什么你不能像C一样做同样的事情:
number = SOME_NUMBER
while True:
for i in range(number, len(array)):
# do something
number = 0
顺便说一句,根据你使用的Python版本, xrange
可能比range
更好。 在Python 2.x中, range
将生成所有数字的实际列表。 xrange
将生成一个迭代器,并且当范围很大时消耗更少的内存。
在Python中,踩过传统意义上的集合并不理想。 循环 - 迭代 - 对象的能力由对象控制,因此您不需要像在C ++中的for
循环中那样手动单步执行计数器。
据我所知,你在这里要做的是在list
每个项目上执行相同的代码(Python中没有数组 ),多次。
要做到这一点:
def whatever_function(foo):
# some code here that works on each item on the list
# foo is an item of the list
while True:
map(whatever_function, some_list)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.