Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 16.03.2019
Сообщений: 81

Словарь из массива

11.12.2019, 15:20. Показов 4777. Ответов 9

Студворк — интернет-сервис помощи студентам
Подскажите, что нужно дописать, чтобы записать в ключи все значения, а не одно.
Сделал следующие:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Mass = [['G10', ['2019', '9', '13', '8', '22', '14']],
        ['G5', ['2019', '9', '13', '8', '22', '14']],
        ['G1', ['2019', '9', '13', '8', '22', '15']],
        ['G10', ['2019', '9', '13', '8', '22', '15']]]
 
def flat_list(array, new_list=[]): # Делаем одномерный список
    for i in array:
        if type(i) == str:
            new_list.append(i)
        else:
            flat_list(i)
    return new_list
Mass_New = flat_list(Mass)
 
 
dct = {}
data = Mass_New
for i in range(0, len(data), 7): # Выделяем последовательность значений
    key, val = data[i: i+2]        
    dct.setdefault(key,[]).extend([val]) # Если ключи повторяются, добавляем значения.
print(dct)
Вывод: {'G10': ['2019', '2019'], 'G5': ['2019'], 'G1': ['2019']}
А нужно: {'G10': ['2019', '9', '13', '8', '22', '14'], ['2019', '9', '13', '8', '22', '14'], 'G5': ['2019', '9', '13', '8', '22', '14']...}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.12.2019, 15:20
Ответы с готовыми решениями:

Из Массива в Словарь
Приветствую всех! Ни как не могу передать значения из массива в Словарь: Public Function Get_Value_From_Close_Book2() Dim...

Словарь на основе массива
Необходимо реализовать словарь на основе массива с необходимыми операциями: 1)add {key} {value} читает слово и число из консоли 2)get...

Можно ли создать словарь в словаре и чтобы каждый словарь вызывался по ключу?
Ребят, всем привет) Подскажите, можно ли создать словарь в словаре? Например, пишу рецепт торта. Мне надо 3 списка в одном списке под...

9
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
11.12.2019, 15:28
Лучший ответ Сообщение было отмечено Getter17 как решение

Решение

Цитата Сообщение от Getter17 Посмотреть сообщение
А нужно: {'G10': ['2019', '9', '13', '8', '22', '14'], ['2019', '9', '13', '8', '22', '14'], '
так не получится, значение должно быть или тапл или лист, вот пример для списка, тапл по аналогии можно
Python
1
2
3
4
5
6
7
8
9
10
11
12
>>> a_list =[['G10', ['2019', '9', '13', '8', '22', '14']],
...         ['G5', ['2019', '9', '13', '8', '22', '14']],
...         ['G1', ['2019', '9', '13', '8', '22', '15']],
...         ['G10', ['2019', '9', '13', '8', '22', '15']]]
>>> result= {}
>>> for inner in a_list:
...     if inner[0] not in result.keys():
...         result[inner[0]]=[]
...     result[inner[0]].append(inner[1])
... 
>>> result
{'G10': [['2019', '9', '13', '8', '22', '14'], ['2019', '9', '13', '8', '22', '15']], 'G5': [['2019', '9', '13', '8', '22', '14']], 'G1': [['2019', '9', '13', '8', '22', '15']]}
2
0 / 0 / 0
Регистрация: 16.03.2019
Сообщений: 81
11.12.2019, 15:29  [ТС]
Welemir1, Я понял, благодарю
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
11.12.2019, 15:37
Welemir1, я так быстро ещё не научился
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
11.12.2019, 15:59
Чёт не понял, а зачем там новые списки и append-ы? Если я правильно понял, то просто
Python
1
2
d = {k: v for k, v in Mass}
print(d)
0
0 / 0 / 0
Регистрация: 16.03.2019
Сообщений: 81
11.12.2019, 16:06  [ТС]
Welemir1,
а для такого массива подскажете?
Python
1
2
3
4
a_list = [['G10', [['4', '5', '7'], ['4', '5', '6']]], 
            ['G5', [['4', '5', '7'], ['4', '5', '6']]],
            ['G1', [['3', '4', '6'], ['4', '31', '7'], ['4', '7', '6']]], 
            ['G10', [['3', '4', '6'], ['4', '31', '7'], ['4', '7', '6']]]]
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
11.12.2019, 16:27
Цитата Сообщение от dondublon Посмотреть сообщение
Чёт не понял
ты не понял, что ему надо ВСЕ значения для G10, а при твоем варианте будет только ['2019', '9', '13', '8', '22', '15']
Обрати внимание что ключи то повторяются

Добавлено через 1 минуту
Цитата Сообщение от Getter17 Посмотреть сообщение
а для такого массива подскажете?
сделай по аналогии, только при аппенде распаковывай список внутренний, пробуй!
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
11.12.2019, 16:36
А, вроде ясно, но не соответствует примеру.
А нужно: {'G10': ['2019', '9', '13', '8', '22', '14']
Тут же нет '15'.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
11.12.2019, 17:34
dondublon, ну он от руки накалякал, ошибся)
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
11.12.2019, 17:38
А, понятно.

Добавлено через 2 минуты
Предлагаю чуток сократить.
Python
1
2
3
4
5
6
7
from collections import defaultdict
 
d = defaultdict(list)
for k, v_list in Mass:
    d[k].append(v_list)
 
print(d)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.12.2019, 17:38
Помогаю со студенческими работами здесь

Задайте с терминала словарь. Напечатайте те слова исходной строки, которые входят в словарь.
Задана строка ---Задайте с терминала словарь (перечень эталонных слов). Напечатайте те слова исходной строки, которые входят в...

Ввести словарь с клавиатуры. С помщ лямбды отсортировать словарь по убыванию ключа и вывести на экран
Ввести словарь с клавиатуры. С помощью лямбды отсортировать словарь по убыванию ключа и вывести на экран.

Мульти словарь или как генерировать словарь в словаре
Добрый день. Есть большое количество данных, которое на хочется перебирать, и появилась проблема: есть список - как сделать так что...

Как лучше добавить в словарь другой словарь?
Добрый день! Как лучше добавить вложенный словарь new_dict в stat_obj? data = {'stat_obj':''} data = {'E-1':{'name':'E-1'}} ...

В файле input.txt хранится англо-русский словарь. Создать русско-английский словарь и сохранить его в отсортированном ви
пример input.txt apple – лесть, яблоко soap – лесть, мыло foam – мыло, пена output.txt лесть – apple, soap мыло – foam,...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru