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

Таблицу в словарь

18.12.2019, 22:36. Показов 3700. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Помогите пожалуйста выполнить задание. Застрял на первом этапе. Не могу преобразовать таблицу в словарь.


Скриншот задания


Пытаюсь таким методом преобразовать таблицу в словарь, но выводит почему-то только последние данные из таблицы
Python
1
2
3
4
5
6
7
8
9
10
11
a = [
    [1, 'Фомина Екатерина Артемовна', 19, '19-ИЭ'],
    [2, 'Архипов Семён Витальевич', 19, '19-ИЭ'],
    [3, 'Вадим Витальевич Владимирович', 19, '19-ИЭ']
    ]
 
b = dict()
for i in a:
    b[0+1] = i
 
print(b)
Заранее признателен за подсказку
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.12.2019, 22:36
Ответы с готовыми решениями:

Разобрать таблицу из docx в словарь
Есть таблица в docx с четырьмя столбцами. IP источника IP назначения Порт назначения Обоснование Его нужно распарсить на 4...

Создать словарь (хэш таблицу) и записать туда слова из файла
Прошу помочь разобраться с тем, что написано. Конец семестра, куча долгов. Наверняка сами такими же были. Буду благодарен за любую помощь. ...

Опишите, используя словарь, таблицу соревнований (название команды, количество набранных очков)
Напишите пожалуйста программу по данной задаче Опишите, используя словарь, таблицу соревнований (название команды, количество...

14
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 13
19.12.2019, 00:42  [ТС]
С первым этапом разобрался. Буду признателен, если поможете дальше

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
a = [
    [1, 'Фомина Екатерина Артемовна', 19, '19-ИЭ'],
    [2, 'Архипов Семён Витальевич', 19, '19-ИЭ'],
    [3, 'Синкевич Витальевич Владимирович', 19, '19-ИЭ']
    ]
 
g = 0
b = dict()
for i in a:
    g = g + 1
    b[g] = i
 
print(b)
Добавлено через 1 час 12 минут
Вроде справился

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
students_list = [
    [1, 'Фомина Екатерина Артемовна', 19, '19-ИЭ'],
    [2, 'Архипов Семён Витальевич', 19, '19-ИЭ'],
    [3, 'Синкевич Витальевич Владимирович', 19, '19-ИЭ']
    ]
 
minus_number = []
for i in students_list:
    i.pop(0)
    minus_number.append(i)
 
minus_number.sort()
 
g = 0
b = dict()
for y in minus_number:
    g = g + 1
    b[g] = y
 
print(b)
0
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
19.12.2019, 04:25
если использовать enumerate, можно сократить запись:
Python
1
2
3
4
b = dict()
for g, y in enumerate(minus_number):
    b[g] = y
print(b)
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
19.12.2019, 08:15
Vigi, это не порядковый номер, а берётся из "структуры".

Python
1
2
3
4
5
6
7
8
9
10
11
a = [
    [1, 'Фомина Екатерина Артемовна', 19, '19-ИЭ'],
    [2, 'Архипов Семён Витальевич', 19, '19-ИЭ'],
    [3, 'Синкевич Витальевич Владимирович', 19, '19-ИЭ']
    ]
 
d = {}
for num, fio, age, group in a:
    d[num] = [fio, age, group]
    
print(d)
А вот сортировка записей в словаре невозможна.
1
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
19.12.2019, 08:34
1) Можно сразу отсортировать список а.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
a = [
    [1, 'Фомина Екатерина Артемовна', 19, '19-ИЭ'],
    [2, 'Архипов Семён Витальевич', 19, '19-ИЭ'],
    [3, 'Синкевич Витальевич Владимирович', 19, '19-ИЭ']
    ]
 
a.sort(key=lambda x: x[1])
 
d = {}
for num, fio, age, group in a:
    d[num] = [fio, age, group]
 
for num in d:
    print(d[num])
 
['Архипов Семён Витальевич', 19, '19-ИЭ']
['Синкевич Витальевич Владимирович', 19, '19-ИЭ']
['Фомина Екатерина Артемовна', 19, '19-ИЭ']
2) Можно отсортировать словарь d из ответа Рыжий Лис.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from collections import OrderedDict
 
a = [
    [1, 'Фомина Екатерина Артемовна', 19, '19-ИЭ'],
    [2, 'Архипов Семён Витальевич', 19, '19-ИЭ'],
    [3, 'Синкевич Витальевич Владимирович', 19, '19-ИЭ']
    ]
 
d = {}
for num, fio, age, group in a:
    d[num] = [fio, age, group]
 
od = OrderedDict(sorted(d.items(), key=lambda t: t[1][0]))
 
for num in od:
    print(od[num])
 
['Архипов Семён Витальевич', 19, '19-ИЭ']
['Синкевич Витальевич Владимирович', 19, '19-ИЭ']
['Фомина Екатерина Артемовна', 19, '19-ИЭ']
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
19.12.2019, 08:37
Цитата Сообщение от ioprst Посмотреть сообщение
for num in d:
Я бы тут написал так:
Python
1
for num in d.keys():
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
19.12.2019, 08:42
Рыжий Лис, зачем? Я тоже так раньше писал, но перестал.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
19.12.2019, 08:50
Нагляднее. Сразу видно, что это словарь, и что мы итерируем ключи.
0
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
19.12.2019, 09:27
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Vigi, это не порядковый номер, а берётся из "структуры".
Что -то я не заметил чтобы его код брал из структуры...
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
19.12.2019, 09:44
Так не код, а задание нужно смотреть.
0
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
19.12.2019, 11:47
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Так не код, а задание нужно смотреть.

Не по теме:

А что, так можно было? )))

0
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 13
19.12.2019, 11:51  [ТС]
Спасибо большое за подсказки
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
19.12.2019, 12:13
Цитата Сообщение от ioprst Посмотреть сообщение
Можно отсортировать словарь d из ответа Рыжий Лис.
всегда хочется знать зачем что то усложнять
Python
1
2
3
4
5
6
from collections import OrderedDict
#..................
od = OrderedDict(sorted(d.items(), key=lambda t: t[1][0]))
 
for num in od:
    print(od[num])
если все проще ?

Python
1
2
for num in sorted(d, key=lambda t: d[t][0]):
    print(d[num])
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
19.12.2019, 12:16
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
если все проще ?
Это совсем не проще. Берётся items из словаря, сортируется, потом результат сортировки отбрасывается и берутся только ключи (которые, возможно, остались отсортированы).
1
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
19.12.2019, 12:19
Рыжий Лис, теперь понятно. как говорится под капотом все продуманно относительно того что мы видим снаружи
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.12.2019, 12:19
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
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