每次打印时如何评估条件列表?

时间:2018-11-03 16:23:30

标签: python python-3.x python-2.7 list updates

我想知道是否每次打印列表时都需要评估条件列表。

例如:

a,b,c,d=10,15,30,56
li=[a%10==0, b<5, c//3==10, d%2==0]
print(li)
b=3
print(li)

第一个和第二个打印功能给出[True, False, True, True]

如何使列表根据上面提到的条件更新其值。

以便第二个打印功能根据变量b的更新值打印[True, True, True, True]

2 个答案:

答案 0 :(得分:1)

有可能,它称为函数:

a, b, c, d = 10, 15, 30, 56

def get_list(a,b,c,d):
    return [a%10 == 0 , b < 5, c//3 == 10, d%2 == 0]

print(get_list(a,b,c,d))

b=3
print(get_list(a,b,c,d))

输出:

[True, False, True, True]
[True, True, True, True]

python lambda也是可能的-它们在执行时是惰性绑定的-因此反映了对b的更改:

k = lambda: [a%10 == 0 , b < 5, c//3 == 10, d%2 == 0]

print(k())   # execute the lambda
b=3
print(k())   # execute again

输出:

[True, False, True, True]
[True, True, True, True]

答案 1 :(得分:0)

可能最好的方法是使用一个函数:

def evaluate(a, b, c, d):
    return [a%10==0, b<5, c//3==10, d%2==0]

print(evaluate(a, b, c, d))