Плюс кратная переменная (python)

#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 это не так уж важно