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

Пирамидальная сортировка словаря

06.02.2017, 13:21. Показов 1532. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Собственно Такой вот вопрос: нужно отсортировать список словарей по году рождения, сам алгоритм я нашел(врать не буду в интернете), как реализуется алгоритм я сам понимаю, но вот как заставить отсортировать по году не могу понять(так сортирует по фамилии)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# -*- coding: utf-8 -*-
kol = int(input(u'Введите количество студентов:'))
li = []
i=0
li_year = []
for i in xrange(kol):
    student = {"god":int(input(u"Год:")),
               "fam":str(input(u"Фамилия:")),
               "name":str(input(u"Имя:")),
               "group":str(input(u"Группа:")),
               "rs": int(input(u"Рейтинг:"))}
 
    li.append(student)
    li_year.append(student.get("god"))
                   
print(li[0].get("god"))
def piramidaSort(li):
    def piramidaNiz(li, k, n):
        new_elem = li[k]
        while 2*k+1 < n:
            child = 2*k+1
            if child+1 < n and li[child] < li[child+1]:
                child += 1
            if new_elem >= li[child]:
                break
            li[k] = li[child]
            k = child
        li[k] = new_elem
 
    size = len(li)
    for i in range(size//2-1,-1,-1):
        piramidaNiz(li, i, size)
    for i in range(size-1,0,-1):
        temp = li[i]
        li[i] = li[0]
        li[0] = temp
        piramidaNiz(li, 0, i)
    return li
lis =[]
lis = piramidaSort(li)
lis_s = []
i = 0
print(lis)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.02.2017, 13:21
Ответы с готовыми решениями:

Пирамидальная сортировка
Помогите, пожалуйста, реализовать пирамидальную сортировку для сортировки строк

Пирамидальная сортировка по нескольким полям
Мне нужно реализовать пирамидальную сортировку, которая будет сортировать список по нескольким полям. Я не понимаю, как в уже имеющийся код...

Сортировка словаря
Есть допустим такой словарь: {'дом': 7, 'осёл': 5, 'петух': 5, 'огонёк': 4, 'собака': 3, 'кот': 3, 'окошко': 2, 'ночь': 1, 'дуб': 1,...

2
431 / 302 / 90
Регистрация: 03.12.2015
Сообщений: 741
06.02.2017, 16:38
Не особо в код вникал, поэтому попытка "наугад":
Заменить в сортировке обращения к списку li[...] на li[...]["god"]

Добавлено через 7 минут
Нет, так все таки не получится.

Информация об одном студенте хранится в виде словаря. Информация обо всех студентах - в виде списка словарей. Этот список передается в алгоритм сортировки. Во время сортировки элементы списка сравниваются, т.е. сравниваются словари. А надо чтобы сравнивались элементы словарей (по ключу "god"). Нужно исправить строки, в которых происходит сравнение элементов списка.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
07.02.2017, 10:04
Советую выделить функцию сортировки и абстрагировать её от ваших данных, то есть словарей.
Может, в итоге и понятнее получится, найдёте проблему.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2017, 10:04
Помогаю со студенческими работами здесь

Сортировка словаря
добрый день. Помогите отсортировать список. def main(): spisok = {'a': {1, 2, 3}, 'b': {3, 4, 5}, 'c': {5, 6}, } korteg =...

Сортировка словаря
##Дан словарь. Помогите остортировать его по значению Номер Dictionary = {'№':,'1':,'2':,'3':} print...

Сортировка словаря
Как отсортировать словарь по произведению ключа и значения? INPUT: 30:8 50:12 40:14 20:10 OUTPUT: 30:8 20:10 40:14

Сортировка словаря
database = { &quot;Группа1&quot;:, , ], &quot;Группа2&quot;:, ] } def cout2(groupname): for key in...

Сортировка словаря
Функция сортировки по алфавиту: def alphabet_sort(to_sort: dict) -&gt; dict: # Сортировка в алфавитном порядке производителей ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru