Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
Petrol1342
2 / 2 / 0
Регистрация: 11.09.2013
Сообщений: 22
#1

Сложение словарей

16.05.2014, 08:11. Просмотров 2412. Ответов 5
Метки нет (Все метки)

Доброго времени суток. Возникла потребность написать функцию, которая бы выполняла сложение двух одинаковых словарей, т.е. оба словаря одинаковой длины и ключи их совпадают, различаются только значения. Например:

{(0, 1): 0, (1, 0): 0, (0, 0): 0, (1, 1): 0} и {(0, 0): 1, (1, 0): 2, (1, 1): 3, (0, 1): 4}

Главная проблема заключается в том, что элементы в словарях не упорядочены, а надо чтобы функция выполняла сложение именно по одинаковым ключам. Никак не могу придумать такой алгоритм. Возвращать функция должна словарь, в котором уже будет результат от сложения двух этих словарей. Подскажите пожалуйста как это можно реализовать?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2014, 08:11
Ответы с готовыми решениями:

Объединение словарей Python
Господа, помогите разобраться в задаче: необходимо объединить два прайс-листа...

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

Динамическое создание новых словарей
Здравствуйте, такой вопрос: как можно сделать динамическое создание новых...

Форматирование при выводе словарей
Господа, нужна в очередной раз помощь советом. Имею словарь, содержащий...

Создать словарь словарей из строки
Есть словарь dictFullDataParse. Нужно из приходящей строки создать подсловари и...

5
dondublon
2136 / 1054 / 212
Регистрация: 17.03.2012
Сообщений: 6,386
Записей в блоге: 5
16.05.2014, 08:54 #2
Лучший ответ Сообщение было отмечено Petrol1342 как решение

Решение

А зачем вам упорядоченность?
Решение "в лоб":
Python
1
2
for key, value in dic1.items():
    dic_result[key] = value+dic2[key]
Но где-то я видел функцию, которая это делает, то ли в самом питоне, то ли в сторонней библиотеке, вспомню - напишу.

Добавлено через 12 минут
Во, вспомнил.
Python
1
2
3
4
5
6
from collections import Counter
dict1 = {(0, 1): 0, (1, 0): 0, (0, 0): 0, (1, 1): 0}
c1 = Counter(dict1)
dict2 =  {(0, 0): 1, (1, 0): 2, (1, 1): 3, (0, 1): 4}
c2 = Counter(dict2)
c1+c2
Вывод Counter({(0, 1): 4, (1, 1): 3, (1, 0): 2, (0, 0): 1})

Там же есть класс OrderedDict, может помочь, если надо вручную сложить.
1
Petrol1342
2 / 2 / 0
Регистрация: 11.09.2013
Сообщений: 22
16.05.2014, 08:55  [ТС] #3
Спасибо, то что нужно!
0
dondublon
2136 / 1054 / 212
Регистрация: 17.03.2012
Сообщений: 6,386
Записей в блоге: 5
16.05.2014, 08:58 #4
Petrol1342, могу только посоветовать вам ещё раз прочитать мой ответ.
Простой словарь разумеется не упорядочен, это не его дело - быть упорядоченным.
1
Petrol1342
2 / 2 / 0
Регистрация: 11.09.2013
Сообщений: 22
16.05.2014, 09:08  [ТС] #5
Цитата Сообщение от dondublon Посмотреть сообщение
Petrol1342, могу только посоветовать вам ещё раз прочитать мой ответ.
Простой словарь разумеется не упорядочен, это не его дело - быть упорядоченным.
Все правильно, я Вас понял. Спасибо!
0
dondublon
2136 / 1054 / 212
Регистрация: 17.03.2012
Сообщений: 6,386
Записей в блоге: 5
16.05.2014, 09:13 #6
Незашто пиши исчо
0
16.05.2014, 09:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2014, 09:13

Правильно отсортировать словарь словарей
Есть словарь словарей вида xx = {'word1': {'fn1.txt': 0, 'fn2.txt': 0,...

Получить один элемент из списка словарей
Подскажите пожалуйста, как реализовать: Есть json ответ вида Хочется иметь...

Как объединить статистику из разных словарей?
Здравствуйте. Имеется, например, dict, в котором статистика по каждому слову...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru