Уведомления

Группа в Telegram: присоединиться

#1 Сен. 8, 2018 09:55:09

Nurullokhon
Зарегистрирован: 2018-09-08
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Как равнить значения двух словарей?

Словарь 1:
year2017 = {st_lenin:[{
“ИМЯ”: “Вася”,
“Год”: 2001,
“Вес”:57
},{
“ИМЯ”: “Петя”,
“Год”: 2004,
“Вес”:55
}]}
Словарь 2:
year2018 = {st_lenin:[{
“ИМЯ”: “Вася”,
“Год”: 2001,
“Вес”:60
},{
“ИМЯ”: “Петя”,
“Год”: 2004,
“Вес”:54
}]}
И так вопрос. Как сравнить сколько прибавили или убавили в весе молодые люди. Сравнить списки умею а вот словари не смог. помогите пожалуйста.

Офлайн

#2 Сен. 8, 2018 10:53:55

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

Как равнить значения двух словарей?

  
>>> year2017 = {'st_lenin': [{'ИМЯ': 'Вася', 'Год': 2001, 'Вес': 57},
...                          {'ИМЯ': 'Петя', 'Год': 2004, 'Вес': 55}]}
>>> year2018 = {'st_lenin': [{'ИМЯ': 'Вася', 'Год': 2001, 'Вес': 60},
...                          {'ИМЯ': 'Петя', 'Год': 2004, 'Вес': 54}]}
>>> 
>>> for d1, d2 in zip(year2017['st_lenin'], year2018['st_lenin']):
...     if d1['ИМЯ'] == d2['ИМЯ']:
...         print(d1['ИМЯ'])
...         print(d1['Вес'], d2['Вес'], '=>', d2['Вес'] - d1['Вес'])
... 
Вася
57 60 => 3
Петя
55 54 => -1
>>>



Отредактировано py.user.next (Сен. 8, 2018 11:02:42)

Офлайн

#3 Сен. 8, 2018 13:42:35

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

Как равнить значения двух словарей?

Делай словари такими что бы с ними было удобно работать. Например так:

 >>> year2017 = {'st_lenin': {('Вася', 2001): 57, ('Петя', 2004): 55}}
>>> year2018 = {'st_lenin': {('Вася', 2001): 60, ('Петя', 2004): 54}}
>>> { k1: x-y for k1, x in year2018["st_lenin"].items() for k2, y in year2017["st_lenin"].items() if k1 == k2 }
{('Вася', 2001): 3, ('Петя', 2004): -1}



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

Отредактировано Rodegast (Сен. 8, 2018 13:48:49)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version