Мне нужно сохранить второй вариант кортежа (удобочитаемое значение | "Имя A") в переменной name. Как это сделать?

CHOICES = (
   ('A', 'Name A'),
   ('B', 'Name B'),
   ('C', 'Name C'),
)

if "first value" in CHOICES:
   name = "second value"
-1
Nurzhan Nogerbek 24 Апр 2017 в 15:50

2 ответа

Лучший ответ

Вы можете просто преобразовать свой кортеж в dict:

>>> names = dict(CHOICES)
{'C': 'Name C', 'A': 'Name A', 'B': 'Name B'}
>>> name = names['A'] # If you're sure 'first value' is in CHOICES
>>> name
'Name A'
>>> name = names.get('D', 'No such name') # If you're not sure 'first value' is present
>>> name
'No such name'
2
Eric Duminil 24 Апр 2017 в 12:52

Предполагая, что ваш ввод, как если бы не первое значение присутствовало, все же кортеж имеет как минимум два элемента, как этот,

CHOICES = (
('A', 'Name A'),
('B', 'Name B'),
('', 'Name C'),
)'

Это создаст список второго варианта кортежа

name = dict(CHOICES).values()
0
Dimitris Fasarakis Hilliard 24 Апр 2017 в 13:12
43588532