Форум сайта python.su
Словарь 1:
year2017 = {st_lenin:[{
“ИМЯ”: “Вася”,
“Год”: 2001,
“Вес”:57
},{
“ИМЯ”: “Петя”,
“Год”: 2004,
“Вес”:55
}]}
Словарь 2:
year2018 = {st_lenin:[{
“ИМЯ”: “Вася”,
“Год”: 2001,
“Вес”:60
},{
“ИМЯ”: “Петя”,
“Год”: 2004,
“Вес”:54
}]}
И так вопрос. Как сравнить сколько прибавили или убавили в весе молодые люди. Сравнить списки умею а вот словари не смог. помогите пожалуйста.
Офлайн
>>> 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)
Офлайн
Делай словари такими что бы с ними было удобно работать. Например так:
>>> 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)
Офлайн