Как оценить список условий каждый раз, когда он печатается?
Я хочу знать, есть ли возможность оценивать список условий каждый раз, когда список печатается.
Например:
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]
Как я могу сделать список обновить его значения в соответствии с условиями, упомянутыми в нем выше.
Так что вторая функция печати печатает [True, True, True, True]
в соответствии с обновленным значением переменной b.
2 ответа
Это возможно, это называется функцией:
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 лямбда также возможна - они лениво связаны при выполнении - следовательно, отражают изменения в 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]
Вероятно, лучшим способом было бы использовать функцию:
def evaluate(a, b, c, d):
return [a%10==0, b<5, c//3==10, d%2==0]
print(evaluate(a, b, c, d))