我想知道是否每次打印列表时都需要评估条件列表。
例如:
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]
。
答案 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))