Python:Рецепты/Поиск N максимальных и минимальных элементов: различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) (→№1) |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 6: | Строка 6: | ||
==Задача== | ==Задача== | ||
У вас есть коллекция элементов и вы хотите создать список из N максимальных или минимальных элементов. | |||
==Решение== | ==Решение== | ||
Для этого подойдёт модуль [[heapq]], в котором есть две функции nlargest() и nsmallest(). | |||
==Пример== | ==Пример== | ||
===№1=== | ===№1=== | ||
Дана последовательность чисел: | |||
<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div"> | <syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div"> | ||
nums = [111, -4, 0, 10, 56, -38, 11, 78, -9, 100, 99, 1,2,3] | |||
</syntaxhighlight> | |||
Импортируем модуль: | |||
<syntaxhighlight lang="python" enclose="div"> | |||
import heap q | |||
</syntaxhighlight> | |||
Получим 3 максимальных числа из последовательности: | |||
<syntaxhighlight lang="python" enclose="div"> | |||
print(heapq.nlargest(3, nums)) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Результат: | |||
<syntaxhighlight lang="python" enclose="div"> | <syntaxhighlight lang="python" enclose="div"> | ||
[111, 100, 99] | |||
</syntaxhighlight> | |||
Получим 3 минимальных числа из последовательности: | |||
<syntaxhighlight lang="python" enclose="div"> | |||
print(heapq.nsmallest(3, nums)) | |||
</syntaxhighlight> | |||
Результат: | |||
<syntaxhighlight lang="python" enclose="div"> | |||
[-38, -9, -4] | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Версия от 21:15, 30 апреля 2020
Проверка/Оформление/Редактирование: Мякишев Е.А.
Поиск N максимальных и минимальных элементов
Задача
У вас есть коллекция элементов и вы хотите создать список из N максимальных или минимальных элементов.
Решение
Для этого подойдёт модуль heapq, в котором есть две функции nlargest() и nsmallest().
Пример
№1
Дана последовательность чисел:
nums = [111, -4, 0, 10, 56, -38, 11, 78, -9, 100, 99, 1,2,3]
Импортируем модуль:
import heap q
Получим 3 максимальных числа из последовательности:
print(heapq.nlargest(3, nums))
Результат:
[111, 100, 99]
Получим 3 минимальных числа из последовательности:
print(heapq.nsmallest(3, nums))
Результат:
[-38, -9, -4]
См.также
Внешние ссылки
Категории:
- Страницы с устаревшим атрибутом подсветки синтаксиса «enclose»
- Справочник языка Python
- Python
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- SEO
- Рецепты
- Рецепты Python
- Последовательности в Python
- Работа с последовательностями в Python
- Распаковка в Python
- Работа со структурами данных в Python
- Структуры данных Python
- Последовательности
- Работа с последовательностями
- Распаковка
- Работа со структурами данных
- Структуры данных