Как оценить список условий каждый раз, когда он печатается?

Я хочу знать, есть ли возможность оценивать список условий каждый раз, когда список печатается.

Например:

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))
Другие вопросы по тегам