2024-10-02 00:24:53 发布
网友
如何在Python for循环中使用多个条件?
for example in java: int[] n={1,2,3,4,6,7}; for(int i=0;i<n.length && i<5 ;i++){ //do sth }
python for loop是如何做到这一点的?
Pythonfor循环本身对此没有任何支持。使用break语句可以获得相同的效果:
for
break
for i in range(1, 8): if i >= 5: break # do something
在Python中,for实际上是在某个“迭代器”或某个“iterable对象”上迭代的foreach。在Python2.x中,上面的for循环构建一个包含数字1到7的列表,然后遍历该列表;在Python3.x中,上面的循环获取一个“迭代器对象”,该对象每次生成一个包含值1到7的值。(区别在于range()函数及其返回的内容。在Python 2.x中,可以使用xrange()来获取迭代器对象,而不是分配列表。)
foreach
range()
xrange()
我没有显示您的n对象,因为i将被设置为与其中的值相同的值。如果您确实需要遍历某个列表,那么Python最好直接遍历它,而不是使用变量i来索引该列表。如果您仍然需要一个索引变量,可以使用enumerate()获得它,如下所示:
n
i
enumerate()
n = [3, 5, 10, "cat", "dog", 3.0, 4.0] # list can contain different types for i, value in enumerate(n): if i >= 5: break # do something with value
这里有一种方法可以用for循环有两个或多个条件,这就是问题实际上要问的问题。我试图说明的一点是,这是可以做到的,但不是很Python,这通常不是一个好主意,试图重写代码从另一种语言逐行。
from itertools import takewhile, count n=[1,2,3,4,6,7] for i in takewhile(lambda i:i<len(n) and i<5, count()): print(i)
Java代码的直接等价物是一个while循环:
while
n = [1, 2, 3, 4, 6, 7] i = 0 while i < len(n) and i < 5: # do sth i += 1
你也可以:
n = [1, 2, 3, 4, 6, 7] for x in n[:5]: # do sth
Python
for
循环本身对此没有任何支持。使用break
语句可以获得相同的效果:在Python中,
for
实际上是在某个“迭代器”或某个“iterable对象”上迭代的foreach
。在Python2.x中,上面的for
循环构建一个包含数字1到7的列表,然后遍历该列表;在Python3.x中,上面的循环获取一个“迭代器对象”,该对象每次生成一个包含值1到7的值。(区别在于range()
函数及其返回的内容。在Python 2.x中,可以使用xrange()
来获取迭代器对象,而不是分配列表。)我没有显示您的
n
对象,因为i
将被设置为与其中的值相同的值。如果您确实需要遍历某个列表,那么Python最好直接遍历它,而不是使用变量i
来索引该列表。如果您仍然需要一个索引变量,可以使用enumerate()
获得它,如下所示:这里有一种方法可以用for循环有两个或多个条件,这就是问题实际上要问的问题。我试图说明的一点是,这是可以做到的,但不是很Python,这通常不是一个好主意,试图重写代码从另一种语言逐行。
Java代码的直接等价物是一个
while
循环:你也可以:
相关问题 更多 >
编程相关推荐