Сортирането на списък в 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']
Можете също да подредите елементите в списък по дължината на всеки низ.
За да направите това, създайте функция и я предайте в вид() метод с използване на незадължителен ключ аргумент:
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
- Уроци за кодиране
Idowu е запален по всичко интелигентни технологии и производителност. В свободното си време той се заиграва с кодиране и превключва на шахматната дъска, когато му е скучно, но също така обича да се откъсва от рутината от време на време. Страстта му да показва на хората пътя към съвременните технологии го мотивира да пише повече.
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!
Още една стъпка…!
Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.