Передісторія
Виконуючи завдання із алгебри, мені потрібно було знайти "Скільки різних чотирицифрових чисел можна скласти з цифр 0, 1, 3, 5, 6, якщо в кожному числі цифри не повторюються?"
Створюючи програму для знаходження цих всіх чисел я зрозумів, що число не може розпочинатися із 0, тому рядок (дані) введені у список повинні бути відсортовані. І останнім числом має бути 0. Тому я розглянув деякі способи форматування.
Початок програми
Для початку мені потрібно ввести числа. Звичайно можна це зробити це заздалегідь створивши список.
numeric_old = [0,7,6,4,3,6,4,8,3,9,0]
або створити генератор випадкових чисел, де я використав би бібліотеку random
from random import randint as ri
numeric = []
for n in range(15):
numeric.append(ri(0,10))
та я вирішив вводити числа з клавіатури, бо хотів контролювати скільки нулів буде у моєму списку. Тому використавши метод map, я додав, як окремі числа у список, елементи, що буули розбиті по відступах, із рядка введеного із клавіатури 😅
numeric = list(map(int, input().split()))
print(numeric)
Сортування списку у Python. Спосіб №1. Бульбашкове сортування
Далі я спробував використати бульбашкове сортування з яким я познайомився нещодавно.
i = 6
while i > 0:
i = 0
for n in range(len(numeric)-1):
if numeric[n] > numeric[n+1]:
numeric[n], numeric[n+1] = numeric[n+1],numeric[n]
i += 1
print(numeric)
Сортування списку у Python. Спосіб №2. Переміщення елемента в кінець списку
До цього бульбашкового сортування (що мені не допомогло) довелося шукати ще один варіант сортування. Мені потрібно було просто перемістити всі 0 у кінець. Тому я доповнив знайдений код
i = len(numeric)
while i > 0:
for e in range(len(numeric)-1):
if numeric[e] == 0:
numeric.append(numeric.pop(e))
i -= 1
але він погано працює, якщо нулів багато. А чому - не знаю!!!
Сортування списку у Python. Спосіб №3. Відсортований ключ лямбда
Шукаючи далі способи сортування я натрапив на статтю із використанням лямда функції. Ця функція і стала на заміну попередньому способу.
nums = numeric.copy()
nums[:] = sorted(nums, key=lambda x: not x)
Сортування списку у Python. Спосіб №4. Стандарті методи та способи мови
n2 = numeric.copy()
n2.sort()
n2.reverse()
print(numeric,'\n',nums,'\n', n2)
Але вони мені не дуже допомогли у даній задачі. Натомість я буду їх використовувати у майбутніх проєктах.
Висновок
У мові програмування Python є маса цікавих способів сортувати списки та лише тобі обирати, який у даному проєкті є найбільш корисний.
Коментарі
Дописати коментар