Уведомления

Группа в Telegram: @pythonsu

#1 Март 30, 2011 11:10:31

Panter7777
От:
Зарегистрирован: 2011-02-16
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться со словарями

Всем добрый день!
Есть словарь такого вида:

dict = [{'nane':'Nelya', 'dist': 1, 'dast':'da'}, {'name':'Tanya', 'dist':2, 'dast':'da'}, {'name':'Tina', 'dist':1, 'dast':'net'}] .....
Как из него вывести все значения ключа ‘dist’?



Офлайн

#2 Март 30, 2011 11:15:01

truporez
От:
Зарегистрирован: 2009-05-08
Сообщения: 266
Репутация: +  6  -
Профиль   Адрес электронной почты  

Помогите разобраться со словарями

>>> d = [{'nane':'Nelya', 'dist': 1, 'dast':'da'}, {'name':'Tanya', 'dist':2, 'dast':'da'}, {'name':'Tina', 'dist':1, 'dast':'net'}]
>>> [v["dist"] for v in d]
[1, 2, 1]
>>>



Офлайн

#3 Март 30, 2011 11:26:20

Panter7777
От:
Зарегистрирован: 2011-02-16
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться со словарями

Супер то что нужно.Вот

[0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 0L, 0L, 0L, 0L, 0L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 3L, 3L, 3L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 3L, 3L, 3L, 1L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L]
А как тоже самое только уникальные значения?



Офлайн

#4 Март 30, 2011 11:29:58

Panter7777
От:
Зарегистрирован: 2011-02-16
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться со словарями

Сделал это так:

infos  = [{'nane':'Nelya', 'dist': 1, 'dast':'da'}, {'name':'Tanya', 'dist':2, 'dast':'da'}, {'name':'Tina', 'dist':1, 'dast':'net'}]

distincts = [info['district'] for info in infos]
distincts_sort = []
for i in distincts:
if not i in distincts_sort:
distincts_sort.append(i)
результат:
[0L, 3L, 1L, 2L]
Но может ты покажешь какой-то более интерестный способ?!?!



Отредактировано (Март 30, 2011 12:57:58)

Офлайн

#5 Март 30, 2011 12:06:18

truporez
От:
Зарегистрирован: 2009-05-08
Сообщения: 266
Репутация: +  6  -
Профиль   Адрес электронной почты  

Помогите разобраться со словарями

>>> set([v["dist"] for v in d])
set([1, 2])
>>>



Офлайн

#6 Март 30, 2011 13:02:06

Panter7777
От:
Зарегистрирован: 2011-02-16
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться со словарями

Да берет только уникальные значения

districts = set([info['district'] for info in infos])
, но и выводит, то тоже с этим “set”
Вот:
set([0L, 1L, 2L, 3L])
а как что б только список, без “set(…)”?



Офлайн

#7 Март 30, 2011 13:05:01

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Помогите разобраться со словарями

Panter7777
а как что б только список, без “set(…)”?
>>> list(set([0L, 1L, 2L, 3L]))
[0L, 1L, 2L, 3L]



Офлайн

#8 Март 30, 2011 14:18:34

Panter7777
От:
Зарегистрирован: 2011-02-16
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться со словарями

Супер то что нужно!!!! Огромное спасибо!



Офлайн

#9 Март 30, 2011 15:36:16

easlanov
От:
Зарегистрирован: 2010-08-11
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться со словарями

Вот еще способ:
a = [info for info in infos]
print list(dict(zip(a,a)))



Офлайн

#10 Март 31, 2011 15:28:13

Panter7777
От:
Зарегистрирован: 2011-02-16
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться со словарями

Опять возник вопрос со словарями!
Есть словарь:

test = [{'inf':1, 'numb':'11'},{'inf':1, 'numb':'99a'},{'inf':2, 'numb':'22'},{'inf':3, 'numb':'33'},{'inf':3, 'numb':'33`2a'},]
cu = {}
Нужно добиться вывода:

{1: ('11', '99a'), 2: '22', 3: ('33', '33`2a')}
Делаю так:
for i in test:
cu[i['inf']] = (i['numb'])
Но выходит:
{1: '99a', 2: '22', 3: '33`2a'}



Отредактировано (Март 31, 2011 15:28:50)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version