Сортирането на списък в Python ви позволява да подреждате неговите елементи във възходящ или низходящ ред.

Вместо да пише дълги блокове код за това, Python има вграден метод, който ви позволява да сортирате елементите във всеки списък или масив. Ще обясним как да го направим в тази публикация.

Как да сортирате списък в Python

Можете да сортирате елементите в списък или масив с помощта на Python вид() метод.

The вид() метод в Python приема два незадължителни аргумента и синтаксисът изглежда така:

list.sort (ключ = функция, обратно = True / False)

По подразбиране вид() метод подрежда елементите от списък във възходящ ред:

myList = ["C", "D", "B", "A", "F"]
myList.sort ()
печат (myList)
Изход: ['A', 'B', 'C', 'D', 'F']

Можете да използвате обратен аргумент за преглед на списъка в низходящ ред:

myList = ["C", "D", "B", "A", "F"]
myList.sort (reverse = True)
печат (myList)
Изход: ['F', 'D', 'C', 'B', 'A']

Можете също да подредите елементите в списък по дължината на всеки низ.

За да направите това, създайте функция и я предайте в вид() метод с използване на незадължителен ключ аргумент:

instagram viewer
myList = ["MUO", "Python", "JavaScript", "Sort", "Sortlists"]
def sortLength (елемент):
връщане len (артикул)
myList.sort (reverse = True, key = sortLength)
печат (myList)
Изход: ['JavaScript', 'Sortlists', 'Python', 'Sort', 'MUO']

Как да сортирате списък с речници в Python

Можете да използвате вид() метод за сортиране и на списък с речници.

Нека сортираме задачите в речника по-долу по времето им:

myArray = [
{"Задача": "Измиване", "Време": 12.00},
{"Задача": "Футбол", "Време": 24.00},
{"Задача": "Сортиране", "Време": 17.00},
{"Задача": "Код", "Време": 15.00}
]
def sortByTime (елемент):
връщане на артикул ["Време"]
myArray.sort (ключ = sortByTime)
печат (myArray)

Тъй като стойностите на времето са цели числа, горният блок с код пренарежда масива въз основа на времето на задачата.

Свързани: Как работят масивите и списъците в Python

В допълнение към сортирането на масива по-горе по време, можете също да го подредите по азбучен ред, като използвате задачите, които са низове.

За да сортирате по низ в примерния масив, трябва само да промените Време в квадратната скоба до Задача:

myArray = [
{"Задача": "Измиване", "Време": 12.00},
{"Задача": "Футбол", "Време": 24.00},
{"Задача": "Сортиране", "Време": 17.00},
{"Задача": "Код", "Време": 15.00}
]
def sortByTime (елемент):
връщане на елемент ["Задача"]
myArray.sort (ключ = sortByTime)
печат (myArray)

Можете също да сортирате задачите в обратен ред, като зададете обратен към вярно:

myArray.sort (ключ = sortByTime, reverse = True)

Можете също използвайте ламбда функция с вид() за по-чист код:

myArray.sort (ключ = ламбда getTime: getTime ["Time"])
печат (myArray)

Как да сортирате вложен списък на Python

Можете да сортирате вложен списък от кортежи по индекса на всеки вложен елемент в този списък.

Например, кодът по-долу използва третия елемент във всеки кортеж, за да сортира списъка във възходящ ред:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def sortByThirdIndex (a):
връщане на [2]
Alist.sort (ключ = sortByThirdIndex)
печат (Alist)
Изход: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

В изхода по-горе, третият елемент във всяка кортеж се увеличава от нула до двадесет последователно.

Имайте предвид, че това не работи с набор от Python, тъй като не можете да го индексирате. На всичкото отгоре всяко гнездо в списъка трябва да принадлежи към същия тип данни.

Свързани: Какво представлява набор в Python и как да го създадете

За да подредите изхода обаче в низходящ ред:

Alist.sort (key = getIndex, reverse = True)
печат (Alist)
Изход: [(3, 19, 20), (1, 8, 15), (10, 19, 4), (7, 9, 3), (2, 6, 0)]

Нека да видим как изглежда това с a ламбда функция също:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = сортирано (Alist, ключ = лямбда a: a [2])
печат (newList)
Изход: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Как да сортирате списък с помощта на метода Sorted ()

Като алтернатива можете да използвате сортирано () метод.

Въпреки че работи подобно на вид() метод, той създава нов сортиран списък, без да променя оригинала. Неговото синтаксисно оформление също е малко по-различно.

Синтаксисът на сортирано () метод обикновено изглежда така:

сортирано (списък, ключ = функция, обратно = Вярно / Невярно)

Така че за сортиране на списък с помощта на сортирано () метод, трябва да създадете нова променлива за сортирания списък:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex (a):
връщане на [2]
newList = сортирано (Alist, ключ = getIndex)
печат (newList)
Изход: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

The сортирано () метод също приема a ламбда функционира като негов ключ:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = сортирано (Alist, ключ = лямбда a: a [2])
печат (newList)
Изход: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Къде можете да приложите сортиране на списък?

За ефективно програмиране е необходимо здраво разбиране на метода за сортиране на Python. Позволява ви да контролирате как преминава списък или масив и винаги можете да го прилагате в реални проекти. Например сортирането на списък на Python може да бъде полезно при пренареждане на данни от API или база данни, така че има по-голям смисъл за крайния потребител.

електронна поща
Как да добавя списък в Python

Работа със списъци в Python? Ето какво трябва да знаете за използването на функцията за добавяне на Python при работа със списъци.

Прочетете Напред

Свързани теми
  • Програмиране
  • Python
  • Уроци за кодиране
За автора
Idowu Omisola (66 статии публикувани)

Idowu е запален по всичко интелигентни технологии и производителност. В свободното си време той се заиграва с кодиране и превключва на шахматната дъска, когато му е скучно, но също така обича да се откъсва от рутината от време на време. Страстта му да показва на хората пътя към съвременните технологии го мотивира да пише повече.

Още от Idowu Omisola

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!

Още една стъпка…!

Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.

.