Как проверить несколько переменных против значения?

563
задан Georgy 4 February 2019 в 08:55
поделиться

3 ответа

Можно объединить это

x = 0
y = 1
z = 3

в одной переменной.

In [1]: xyz = (0,1,3,) 
In [2]: mylist = []

Изменение наши условия как:

In [3]: if 0 in xyz: 
    ...:     mylist.append("c") 
    ...: if 1 in xyz: 
    ...:     mylist.append("d") 
    ...: if 2 in xyz: 
    ...:     mylist.append("e") 
    ...: if 3 in xyz:  
    ...:     mylist.append("f") 

Вывод:

In [21]: mylist                                                                                
Out[21]: ['c', 'd', 'f']
0
ответ дан 22 November 2019 в 22:02
поделиться

Без dict попробуйте это решение:

x, y, z = 0, 1, 3    
offset = ord('c')
[chr(i + offset) for i in (x,y,z)]

и дает:

['c', 'd', 'f']
1
ответ дан 22 November 2019 в 22:02
поделиться

Проблема

, В то время как шаблон для тестирования нескольких значений

>>> 2 in {1, 2, 3}
True
>>> 5 in {1, 2, 3}
False

очень читаем и работает во многих ситуация, существует одна ловушка:

>>> 0 in {True, False}
True

, Но мы хотим иметь

>>> (0 is True) or (0 is False)
False

Решение

, Одно обобщение предыдущего выражения основано на ответе от ytpillai:

>>> any([0 is True, 0 is False])
False

, который может быть записан как [1 112]

>>> any(0 is item for item in (True, False))
False

, В то время как это выражение возвращает правильный результат, это не столь читаемо как первое выражение :-(

-1
ответ дан 22 November 2019 в 22:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: