Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 11, 2016 14:03:57

Lestoroer
Зарегистрирован: 2015-12-24
Сообщения: 88
Репутация: +  5  -
Профиль   Отправить e-mail  

Словарь

Всех приветствую.
Как задать для ключа два или более значений?
Это вообще возможно ?
попробовал через or или and не получилось.

dic_eng = {'get':'получить' and 'приобрести'}

Отредактировано Lestoroer (Апрель 11, 2016 14:41:46)

Прикреплённый файлы:
attachment dict.png (1,5 KБ)

Офлайн

#2 Апрель 11, 2016 14:36:43

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

Словарь

dic_eng = {'get':['получить', 'преобрести']}

Офлайн

#3 Апрель 11, 2016 14:41:54

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Словарь

Кстати - список в значении распространенная комбинация!
А работал ли кто со списком в ключе?



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#4 Апрель 11, 2016 14:44:54

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2840
Репутация: +  186  -
Профиль   Отправить e-mail  

Словарь

> А работал ли кто со списком в ключе?

Списков в ключе быть не может по определению, а вот ключи из картежей я часто использую.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Апрель 11, 2016 14:45:58

Lestoroer
Зарегистрирован: 2015-12-24
Сообщения: 88
Репутация: +  5  -
Профиль   Отправить e-mail  

Словарь

noob_saibot
Спасибо

Офлайн

#6 Апрель 11, 2016 14:53:16

noob_saibot
Зарегистрирован: 2013-09-11
Сообщения: 495
Репутация: +  20  -
Профиль   Отправить e-mail  

Словарь

Rodegast
ZerG
Раз речь зашла о словарях, так плохо делать?
def foo(x):
    yield x
def bar(y):
    yield y**2
dc = {1: foo(4), 2: bar(6)}

PS. сорри за оффтопик

Отредактировано noob_saibot (Апрель 11, 2016 14:54:46)

Офлайн

#7 Апрель 11, 2016 14:59:52

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2840
Репутация: +  186  -
Профиль   Отправить e-mail  

Словарь

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

Плохо. Т.к. генератор только 1 раз может значение выдать.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#8 Апрель 11, 2016 21:12:30

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Словарь

Lestoroer
Как задать для ключа два или более значений?
Это другой тип контейнера
https://github.com/mikeboers/multimap
Я чаще использую
a=defaultdict(list)
a["key"].append(v)



Офлайн

#9 Апрель 11, 2016 21:34:36

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Словарь

ZerG
так нельзя, он же не хешируемый. Кортеж можно.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#10 Апрель 12, 2016 01:38:59

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Словарь

>>> 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}
>>>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version