Уведомления

Группа в Telegram: @pythonsu

#1 Май 30, 2020 21:55:46

Misage
Зарегистрирован: 2020-05-30
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Словари Python

В список data вложено n словарей с двумя парами ключ-значение. Пример, где количество словарей n = 3:

 [{key:value, key2:value2}, {key:value3, key2:value4}, {key:value5, key2:value6}]
Из этих этих словарей при помощи циклов нужно получить словарь result следующего вида (исходя из предыдущего примера):
 {value:value2, value3:value4, value5:value6)
Буду рад любой помощи касательно реализации моего вопроса.

Отредактировано Misage (Май 30, 2020 21:57:11)

Офлайн

#2 Май 30, 2020 22:06:19

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Словари Python

 lst = [{'key':'value', 'key2':'value2'}, {'key':'value3', 'key2':'value4'}, {'key':'value5', 'key2':'value6'}]
dct = {}
[dct.update({x['key']: x['key2']})for x in lst]
print(dct)

Офлайн

#3 Май 30, 2020 22:38:55

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

Словари Python

  
>>> lst = [{'key1': 'value1', 'key2': 'value2'},
...        {'key1': 'value3', 'key2': 'value4'},
...        {'key1': 'value5', 'key2': 'value6'}]
>>> 
>>> out = {d['key1']:d['key2'] for d in lst}
>>> out
{'value1': 'value2', 'value3': 'value4', 'value5': 'value6'}
>>>



Отредактировано py.user.next (Май 30, 2020 22:40:26)

Офлайн

#4 Май 31, 2020 01:37:13

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

Словари Python

 >>> from functools import reduce
>>> lst = [{'key':'value', 'key2':'value2'}, {'key':'value3', 'key2':'value4'}, {'key':'value5', 'key2':'value6'}]
>>> lst = reduce(lambda x,y: x+y, [ list(x.values()) for x in lst  ])
>>> dict(zip(lst[0::2], lst[1::2]))
{'value': 'value2', 'value3': 'value4', 'value5': 'value6'}



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

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version