Найти - Пользователи
Полная версия: Словарь
Начало » Python для новичков » Словарь
1 2 3 4 5
Lestoroer
Всех приветствую.
Как задать для ключа два или более значений?
Это вообще возможно ?
попробовал через or или and не получилось.
dic_eng = {'get':'получить' and 'приобрести'}
noob_saibot
dic_eng = {'get':['получить', 'преобрести']}
ZerG
Кстати - список в значении распространенная комбинация!
А работал ли кто со списком в ключе?
Rodegast
> А работал ли кто со списком в ключе?

Списков в ключе быть не может по определению, а вот ключи из картежей я часто использую.
Lestoroer
noob_saibot
Спасибо
noob_saibot
Rodegast
ZerG
Раз речь зашла о словарях, так плохо делать?
def foo(x):
    yield x
def bar(y):
    yield y**2
dc = {1: foo(4), 2: bar(6)}

PS. сорри за оффтопик
Rodegast
> Раз речь зашла о словарях, так плохо делать?

Плохо. Т.к. генератор только 1 раз может значение выдать.
doza_and
Lestoroer
Как задать для ключа два или более значений?
Это другой тип контейнера
https://github.com/mikeboers/multimap
Я чаще использую
a=defaultdict(list)
a["key"].append(v)
JOHN_16
ZerG
так нельзя, он же не хешируемый. Кортеж можно.
py.user.next
>>> 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}
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB