如何在不停止的情况下仅保存满足for循环中某个条件的第一个元素

时间:2016-12-02 22:54:15

标签: python list

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

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

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

不会为我工作。

1 个答案:

答案 0 :(得分:1)

您需要在if L[1]>20行添加其他条件,这样您就可以获得超过的第一个(也是唯一的第一个)时间并且不必担心休息,因为你不想停止处理。

简单的更改是初始化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