Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Nothingface133

Нужна помощь в решении задачи(словарь)

26.03.2012, 15:05. Показов 2340. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте ув. форумчане, у меня возникла проблемка) вот ее суть:

Есть словарь {(First_id, Second_id): [num1, num2, num3], ...}
Мне нужно создать словарь такого типа {First_id: [num1, num2, num3]...} при чем num1, num2, num3 должны быть просумированы со всеми значениями у которых в ключе есть First_id
Для наглядности укажу пример:

{(First_1, Second_1): [num1_1, num2_1, num3_1], (First_1, Second_2): [num1_2, num2_2, num3_2]}

Результат должен быть таким {First_1:[num1_1+num1_2, num2_1+num2_2, num3_1+num3_2]}
Ломаю голову над этой задачей уже 2 дня)))
Буду премного благодарен за помощь)

с ув. Nothingface133
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.03.2012, 15:05
Ответы с готовыми решениями:

Нужна помощь в решении задачи
Нарушение Правил 5.18 Запрещено размещать задания и решения в виде картинок и других файлов с их текстом. Приведите тему в порядок, или...

Нужна помощь в решении задачи..
|Наименование |Дата |Номинальная |Кол-во|Цена купли-| |фирмы |сделки|цена акций |акций |продажи | ...

Нужна помощь в решении задачи
У толи есть доступ к сети интернет по высокоскоростному одностороннему радиоканалу, обеспечивающему скорость получения им информации 2 (в...

5
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
26.03.2012, 16:07
Ну например так:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/env python3
 
from operator import add
from itertools import repeat
 
def extract(ident, dictionary):
    result = repeat(0)
 
    for key in dictionary:
        if ident in key:
            result = map(add, result, dictionary[key])
            
 
    if isinstance(result, map):
        result = list(result)
    else:
        result = []
        
    # ИМХО, т.к. ident нам уже известно, то логичнее было
    # бы вместо словаря возвращать просто result, т.е.
    # return result
    # но пусть будет по заданию:
    return {ident: result}
Python
1
2
3
4
5
>>> d = {(1, 2): [1,2,3], (1,3): [4,5,6], (1,8): [7,8,9]}
>>> sample.extract(1, d)
{1: [12, 15, 18]}
>>> sample.extract(42, d)
{42: []}
Код расчитан на третий питон
0
224 / 209 / 63
Регистрация: 26.05.2011
Сообщений: 363
27.03.2012, 03:59
Лучший ответ Сообщение было отмечено как решение

Решение

Python
1
2
def extract(ident, dictionary):
    return {ident: list(map(sum, zip(*[v for k, v in dictionary.items() if ident in k])))}
3
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
27.03.2012, 04:13
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/env python3
 
d = {(10, 1): [1, 2, 3], (10, 2): [4, 5, 6], (10, 3): [7, 8, 9],
     (11, 1): [1, 0, 0], (11, 2): [0, 1, 0], (11, 3): [0, 0, 1],
     (12, 1): [2, 2, 3], (12, 2): [3, 3, 4], (12, 3): [4, 4, 5]}
 
def f(d):
    res = {}
    left_values = {k[0] for k in d}
    for v in left_values:
        keys_filt = filter(lambda k: k[0] == v, d)
        lists_zip = zip(*[d[k] for k in keys_filt])
        res[v] = list(map(sum, lists_zip))
    return res
 
print('was:\n', d)
print('now:\n', f(d))
Code
1
2
3
4
5
6
[guest@localhost tests]$ ./t.py
was:
 {(12, 2): [3, 3, 4], (11, 1): [1, 0, 0], (12, 1): [2, 2, 3], (10, 1): [1, 2, 3], (11, 2): [0, 1, 0], (10, 3): [7, 8, 9], (11, 3): [0, 0, 1], (12, 3): [4, 4, 5], (10, 2): [4, 5, 6]}
now:
 {10: [12, 15, 18], 11: [1, 1, 1], 12: [9, 9, 12]}
[guest@localhost tests]$
Добавлено через 8 минут
Цитата Сообщение от Nothingface133 Посмотреть сообщение
Мне нужно создать словарь такого типа {First_id: [num1, num2, num3]...}
да, вот три точки в конце непонятно для чего
0
Nothingface133
28.03.2012, 12:39
Спасибо всем за ответы.
Точками просто указал то что размерность словаря весьма условна, и состоять он может и из 1000 элементов.
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
29.03.2012, 02:27
Цитата Сообщение от Nothingface133 Посмотреть сообщение
и состоять он может и из 1000 элементов
это в каком виде ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.03.2012, 02:27
Помогаю со студенческими работами здесь

С++ матрицы,нужна помощь в решении задачи!)
Программа должна запрашивать размеры матрицы и самостоятельно заполнять ее с помощью генератора случайных чисел.Верхняя граница для...

нужна помощь в решении задачи на Pascal.
Мне нужно написать программу на паскале. Задание такое: вводится число (сколько цифр неизвестно), нужно сложить первую и последнюю цифру...

Нужна помощь в решении задачи МНК
Доброго времени суток. Нужна любая помощь в решении следующей задачи: Методом наименьших квадратов, обработать 10 точек (значение точек...

Нужна помощь в решении простейшей задачи?
// 5Dlg.cpp : файл реализации // #include "stdafx.h" #include "5.h" #include "5Dlg.h" #include "afxdialogex.h" #ifdef...

Нужна помощь в решении задачи по Access
Здравствуйте. Вообщем мне нужно помочь решить задачу по Access. Имеютя три столбца : ФИО студентов Номер группы Номер моб.телефона ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru