Järjestamine mitme väärtuse järgi ennikutega¶
Sissejuhatus¶
Järjestamine on oluline ülesanne andmete korrastamisel, kuid mõnikord peate järjestama andmeid mitme väärtuse järgi. Näiteks võib olla vajadus järjestada inimesi nende vanuse ja nime järgi või raamatuid autorite ja ilmumisaasta järgi. Python võimaldab teil seda teha, kasutades kohandatud võrdlusfunktsioone.
Mitme väärtuse järgi järjestamine¶
Pythonis saate kasutada sorted() funktsiooni, et järjestada andmeid mitme väärtuse järgi. Selleks peate looma kohandatud võrdlusfunktsiooni, mis määrab, kuidas andmed peaksid võrreldama ja järjestama olema. Allpool on näide sellest, kuidas järjestada ennikuid vanuse ja nime järgi:
people = [
("Alice", 30),
("Bob", 25),
("Charlie", 30),
("David", 28)
]
def custom_sort(person):
# Kasutame tuple, et esmalt järjestada vanuse ja seejärel nime järgi
return (person[1], person[0])
sorted_people = sorted(people, key=custom_sort)
for person in sorted_people:
print(f"{person[0]} - {person[1]}")
# Väljund:
# Bob - 25
# David - 28
# Alice - 30
# Charlie - 30
Siin loome kohandatud võrdlusfunktsiooni custom_sort, mis tagastab tuple, kus esimene element on vanus ja teine element on nimi. sorted() funktsioon kasutab seda funktsiooni, et järjestada inimesi esmalt vanuse ja seejärel nime järgi.
Mitme väärtuse järgi järjestamise põhimõte¶
Mitme väärtuse järgi järjestamine põhineb mõistel „võrdlusvõti“ (key). Võrdlusvõti on funktsioon, mis määrab iga elemendi kohta väärtuse, mille järgi seda järjestatakse. Võrdlusvõti funktsioon peab tagastama võrreldavate elementide võrdluste alusel võrreldava väärtuse. Järjestamine toimub siis selle väärtuse põhjal.
Lisame näite, kus järjestatakse raamatuid autorite ja ilmumisaasta järgi:
books = [
("Raamat A", "Autor X", 2005),
("Raamat B", "Autor Y", 2010),
("Raamat C", "Autor X", 2015),
("Raamat D", "Autor Z", 2005)
]
def book_sort(book):
# Kasutame tuple, et esmalt järjestada autori ja seejärel ilmumisaasta järgi
return (book[1], book[2])
sorted_books = sorted(books, key=book_sort)
for book in sorted_books:
print(f"{book[0]} - {book[1]} - {book[2]}")
# Väljund:
# Raamat A - Autor X - 2005
# Raamat C - Autor X - 2015
# Raamat B - Autor Y - 2010
# Raamat D - Autor Z - 2005
Nagu näete, kasutame järjestamiseks kohandatud võrdlusfunktsiooni book_sort, mis tagastab tuple, kus esimene element on autor ja teine element on ilmumisaasta. sorted() funktsioon kasutab seda funktsiooni, et järjestada raamatuid esmalt autori ja seejärel ilmumisaasta järgi.
Kokkuvõte¶
Mitme väärtuse järgi järjestamine on võimalik Pythonis, kasutades sorted() funktsiooni ja kohandatud võrdlusfunktsioone. Saate määrata, kuidas elemente võrreldakse ja järjestatakse, luues võrdlusfunktsiooni, mis tagastab võrreldavate elementide kohta sobiva võrdlusaluse. See võimaldab teil järjestada andmeid vastavalt oma konkreetsetele vajadustele.
Järjestamise võimalused mitme väärtuse järgi on piiritud ja saate neid kohandada vastavalt oma projekti vajadustele.