繁体   English   中英

如何仅将满足某些条件的第一个元素保存在for循环中而不停止它

[英]How to save just the first element that satisfies certain condition in a for loop without stopping it

def sum(x,y):
    R=[x+y,x*y]
    return R
L=[1,2]
P=[]
for i in range(1,1000):
    k=sum(*L)
    P.append(k)
    L=k

我希望保存第二个坐标大于20的第一个列表L,但是我不想停止顺便添加到P的过程。 所以,要添加

if L[1]>20:
   u=L
   break

不会为我工作。

您需要向if L[1]>20行添加另一个条件,因此您将获得第一次(也是第一次)超过该值的时间, 并且不必为中断而烦恼,因为您不想停止处理。

一个简单的更改是初始化u = None ,然后仅在u仍然为None时让您的if成功:

def sum(x,y):
    ...
L=[1,2]
P=[]
u = None
for i in range(1, 1000):
    k=sum(*L)
    P.append(k)
    L=k
    if u is None and L[1] > 20:
        u = L
print "First:", u

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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