Кратчайший способ присвоения «А или В» переменной в Python? - PullRequest
0 голосов
/ 13 октября 2011

Привет эксперты Python,

Мне интересно, есть ли какой-нибудь более короткий способ присвоения значения «A» переменной, если «A» - «Истина» (т.е. существует), и «B», если нет.

Предположим, у меня есть:

mydict = {'a': 'apple', 'b': 'banana', 'c': 'Cherry'}

Тогда, как я понимаю, самый короткий (ну, однострочный) способ присвоения значения, которое не существует в качестве ключа в этом mydict var:

myvar = mydict['m'] if 'm' in mydict else 'Melon'

Но есть ли более короткий способ сделать это?

В Ruby я бы сказал так:

myvar = mydict[:m] || 'Melon'

Просто интересно. Заранее спасибо!

Ответы [ 3 ]

5 голосов
/ 13 октября 2011

В данном конкретном случае (получение элемента из словаря) доступен ярлык - метод get, который допускает значение по умолчанию.

myvar = mydict.get('m', 'Melon')
4 голосов
/ 13 октября 2011

Я бы посчитал использование метода get() улучшением версии if/else.

myvar = mydict.get('m', 'melon')
3 голосов
/ 13 октября 2011

Вы можете попробовать:

myvar = mydict.get('m', 'melon')

, где второй параметр является значением по умолчанию, если ключ 'm' не найден.

См. http://docs.python.org/library/stdtypes.html

...