Форум сайта python.su
5
Всех приветствую.
Как задать для ключа два или более значений?
Это вообще возможно ?
попробовал через or или and не получилось.
dic_eng = {'get':'получить' and 'приобрести'}
Отредактировано Lestoroer (Апрель 11, 2016 14:41:46)
Прикреплённый файлы:
dict.png (1,5 KБ)
Офлайн
20
dic_eng = {'get':['получить', 'преобрести']}
Офлайн
61
Кстати - список в значении распространенная комбинация!
А работал ли кто со списком в ключе?
Офлайн
186
> А работал ли кто со списком в ключе?
Списков в ключе быть не может по определению, а вот ключи из картежей я часто использую.
Офлайн
5
noob_saibotСпасибо
Офлайн
20
Rodegast
ZerGРаз речь зашла о словарях, так плохо делать?
def foo(x): yield x def bar(y): yield y**2 dc = {1: foo(4), 2: bar(6)}
Отредактировано noob_saibot (Апрель 11, 2016 14:54:46)
Офлайн
186
> Раз речь зашла о словарях, так плохо делать?
Плохо. Т.к. генератор только 1 раз может значение выдать.
Офлайн
253
LestoroerЭто другой тип контейнера
Как задать для ключа два или более значений?
a=defaultdict(list) a["key"].append(v)
Офлайн
221
ZerG
так нельзя, он же не хешируемый. Кортеж можно.
Офлайн
857
>>> class List(list): ... def __hash__(self): ... return id(self) ... >>> d = {List([1, 2, 3]): 1, List([4, 5, 6]): 2} >>> d {[1, 2, 3]: 1, [4, 5, 6]: 2} >>> for i in d: ... i.pop() ... 3 6 >>> d {[1, 2]: 1, [4, 5]: 2} >>>
Офлайн