繁体   English   中英

Python For循环中的循环,以具有特定值的循环开始

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM