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

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

26.03.2012, 15:05. Показов 2314. Ответов 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
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru