Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для GorodetskiyKP
139 / 97 / 48
Регистрация: 22.10.2012
Сообщений: 234

Сортировка итератора

13.04.2021, 09:03. Показов 2095. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, разве можно сортировать итератор? Его же придется весь распаковать? Как быть с огромными файлами, например? Порционно извлекать из них данные и сортировать частями? Подскажите, в какую сторону смотреть? Спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.04.2021, 09:03
Ответы с готовыми решениями:

Map, как получить значение итератора
Помогите разобраться, как сохранить взятое значение из списка? Явно что-то не так делаю spisok = result = map(lambda x: x*2,...

Сортировка выбором, Сортировка простыми вставками, Сортировка пузырьком, Сортировка слиянием, Быстрая сортировка Хоара
Имеется список товаров, хранящихся на базе. Каждая строка этого списка содержит: инвентарный номер товара; количество видов этого товара;...

Создать класс итератора
Создать класс итератора, обязательным атрибутом которого, является список слов и реализовать методы __iter__ и __next__, для перебора...

10
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
13.04.2021, 09:18
А гуглом что мешает пользоваться? Функция sorted() не подходит?
0
 Аватар для GorodetskiyKP
139 / 97 / 48
Регистрация: 22.10.2012
Сообщений: 234
13.04.2021, 09:30  [ТС]
RSAX, посмотри, пожалуйста, в гугле, что возращает sorted(). Либо в консоли почитай help(sorted). Удивишься) Помещать в список несколько гигабайт строк - печаль, у меня нет столько ОЗУ.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
13.04.2021, 10:11
GorodetskiyKP, ну в общем да, без преобразования в list - никак. Чудес не бывает.

С огромными файлами - по обстоятельствам. Может, "в лоб", и да пребудет с вами сила хватит вам ОЗУ. Кстати, это не такая уж проблема, если у вас не отключен своп. Допустим, у вас 8 гигов, + минимум 16 в свопе - уже неплохо. Насколько ваши файлы огромные, кстати?

Если всё плохо и это не подходит - искать в ваших файлах структуру и запихивать в СУБД. Но это способ хорош, если ваши файлы регулярно меняются и надо выцеплять данные в каких-то определённых позициях.
1
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
13.04.2021, 10:13
GorodetskiyKP, То что он возвращает список да почитал "Return a new list containing all items from the iterable in ascending order." Но как ещё ты хочешь отсортировать список не открывая его. Вопрос то был можно ли отсортировать итератор, да можно, да придётся открывать
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
13.04.2021, 10:13
Цитата Сообщение от GorodetskiyKP Посмотреть сообщение
Подскажите, разве можно сортировать итератор? Его же придется весь распаковать? Как быть с огромными файлами, например? Порционно извлекать из них данные и сортировать частями? Подскажите, в какую сторону смотреть? Спасибо!
Кури merge-sort. Как "докуришь" - пиши, расскажу что-то интересное.
1
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
13.04.2021, 10:17
Arsegg, разве tim-sort не самый оптимальный алгоритм? Всё таки там тот же самый merge только ещё с insertion
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
13.04.2021, 10:31
Цитата Сообщение от RSAX Посмотреть сообщение
разве tim-sort не самый оптимальный алгоритм? Всё таки там тот же самый merge только ещё с insertion
Там прикол в другом: а именно в операции merge. Берешь порцию данных (что помещается в оперативке), сортируешь (чем угодно), пишешь в файл. И так для каждой порции данных. Затем эти файлы мерджишь. Profit!

Добавлено через 38 секунд
Цитата Сообщение от RSAX Посмотреть сообщение
tim-sort не самый оптимальный алгоритм
Смотря на каких данных

Добавлено через 3 минуты
Цитата Сообщение от RSAX Посмотреть сообщение
разве tim-sort не самый оптимальный алгоритм
qsort, скорее всего будет пошустрее. Тут стабильность сортировки не требуется, т. к. перестановка одинаковых строковых значений не будет иметь влияния на результат.
0
102 / 85 / 25
Регистрация: 21.05.2019
Сообщений: 481
13.04.2021, 10:40
Arsegg, Если полностью не сортированный тогда да, но timsort как я помню сначала ищет уже отсортированный части, но если список полностью не сортирован то merge получше
0
 Аватар для GorodetskiyKP
139 / 97 / 48
Регистрация: 22.10.2012
Сообщений: 234
13.04.2021, 10:48  [ТС]
Arsegg,
Цитата Сообщение от Arsegg Посмотреть сообщение
Там прикол в другом: а именно в операции merge. Берешь порцию данных (что помещается в оперативке), сортируешь (чем угодно), пишешь в файл. И так для каждой порции данных. Затем эти файлы мерджишь. Profit!
Я пока так и делаю.. очень надеялся, что в итераторах есть какой-нибудь свой хитрый метод для сортировки...
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
13.04.2021, 11:43
GorodetskiyKP, кури: https://stackoverflow.com/a/42398981.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.04.2021, 11:43
Помогаю со студенческими работами здесь

Реализовать класс итератора
Реализовать класс итератора и перебрать список a = с использованием итератора

Перебрать список с помошью итератора
Перебрать с помощью итератора список целых чисел

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

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

Тело метода не может быть блоком итератора, так как "void" не является типом интерфейса итератора
using UnityEngine; using UnityEngine.UI; using System.Collections.Generic; using System.Collections; using System; public...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru