Сравнить несколько переменных с одним и тем же значением в «если» в Python? - PullRequest
24 голосов
/ 27 декабря 2011

Я использую Python и хотел бы иметь оператор if с большим количеством переменных.

, таких как:

  if A, B, C, and D >= 2:
         print (A, B, C, and D)

Я понимаю, что это неправильный синтаксис, и это именно тот вопрос, который я задаю - какой правильный синтаксис Python для этого типа оператора if? Спасибо!

Ответы [ 7 ]

44 голосов
/ 27 декабря 2011

Что по этому поводу:

if all(x >= 2 for x in (A, B, C, D)):
    print A, B, C, D

Это может быть полезно, если вы тестируете список переменных long с тем же условием.

17 голосов
/ 27 декабря 2011

Еще одна идея:

if min(A, B, C, D) >= 2:
    print A, B, C, D
6 голосов
/ 27 декабря 2011

Я бы, наверное, написал это как

v = A, B, C, D
if all(i >= 2 for i in v):
    print v
3 голосов
/ 27 декабря 2011

Если у вас есть десять переменных, которые вы рассматриваете как группу, вы, вероятно, захотите сделать их элементами списка, или значениями в словаре, или атрибутами объекта.Например:

my_dict = {'A': 1, 'B': 2, 'C': 3 }

if all(x > 2 for x in my_dict.values()):
    print "They're all more than two!"
2 голосов
/ 27 декабря 2011

В зависимости от того, что вы пытаетесь выполнить, передача списка функции может сработать.

def foo(lst):
    for i in lst:
        if i < 2:
            return
    print lst
1 голос
/ 27 декабря 2011

За исключением того, что она, вероятно, просит об этом:

if A >= 2 and B >= 2 and C >= 2 and D >= 2:
1 голос
/ 27 декабря 2011

Как насчет:

if A >= 2 and B >= 2 and C >= 2 and D >= 2:
    print A, B, C, D

В общем случае нет более короткого способа указать, что одно и то же условие должно выполняться для всех переменных - если только вы не хотите поместить переменные в список, для этого рассмотрим некоторые из другие ответы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...