#python #python-3.x
Вопрос:
Итак, у меня много переменных(int), и я хочу добавить число ко всем сразу, потому что оно мне нужно для оператора
вот пример:
a, b, c, d = 3,5,6,7
if a i == 10 or b i == 10 or c i == 10 or d i == 10:
#do something
Есть ли в любом случае, что я могу сжать это утверждение if
Комментарии:
1. Я предполагаю, что вы хотите сжать выражение
a i == 10 or b i == 10 or c i == 10 or d i == 10
, а не то, что вы показали, что приведет к синтаксической ошибке.2. Проблема в том, что это
=
оператор присваивания. Не то, что вы хотите в цикле for; хотя:=
это другая история.3. «У меня много переменных» — Вам не следовало этого делать.
Ответ №1:
Вы можете использовать any
(для документа python см. https://docs.python.org/3/library/functions.html#any) с пониманием генератора:
a, b, c, d = 3,5,6,7
i = 3
if any(x i == 10 for x in (a, b, c, d)):
print('hello')
Если нет необходимости, я бы предпочел, чтобы числа были в одном списке, а не в отдельных переменных.
nums = [3, 5, 6, 7]
i = 3
if any(x i == 10 for x in nums):
print('hello')
Ответ №2:
Поскольку у вас есть общий знаменатель i
, который разделяют все условия if, почему бы вместо этого не вычислить это вычитаемое значение вне условия if?
a, b, c, d = 3,5,6,7
j = 10 - i
if a == j or b == j or c == j or d == j:
#do something
Ответ №3:
Вы можете поместить все числа в список или массив и выполнить цикл через forloop, чтобы проверить, это было бы полезно, если у вас много чисел, но только с 4 это не так уж важно