Kaedah sort () menyusun elemen-elemen senarai yang diberikan dalam urutan menaik atau menurun tertentu.
Sintaks sort()
kaedahnya adalah:
list.sort (kunci =…, terbalik =…)
Sebagai alternatif, anda juga boleh menggunakan fungsi disortir () terbina dalam Python untuk tujuan yang sama.
disusun (senarai, kunci =…, terbalik =…)
Catatan: Perbezaan paling sederhana antara sort()
dan sorted()
adalah: sort()
mengubah senarai secara langsung dan tidak mengembalikan nilai, sementara sorted()
tidak mengubah senarai dan mengembalikan senarai yang disusun.
susun () Parameter
Secara lalai, sort()
tidak memerlukan parameter tambahan. Walau bagaimanapun, ia mempunyai dua parameter pilihan:
- terbalik - Jika
True
, senarai yang disusun dibalikkan (atau disusun mengikut Urutan menurun) - key - fungsi yang berfungsi sebagai kunci untuk perbandingan jenis
Nilai pulangan dari jenis ()
The sort()
kaedah tidak mengembalikan apa-apa nilai. Sebaliknya, ia mengubah senarai asal.
Sekiranya anda mahukan fungsi untuk mengembalikan senarai yang disusun daripada menukar senarai asal, gunakan sorted()
.
Contoh 1: Susun senarai yang diberikan
# vowels list vowels = ('e', 'a', 'u', 'o', 'i') # sort the vowels vowels.sort() # print vowels print('Sorted list:', vowels)
Pengeluaran
Senarai disusun: ('a', 'e', 'i', 'o', 'u')
Susun mengikut Turutan
The sort()
Cara menerima suatu reverse
parameter sebagai hujah pilihan.
Menetapkan reverse = True
menyusun senarai mengikut urutan menurun.
list.sort(reverse=True)
Sebagai alternatif sorted()
, anda boleh menggunakan kod berikut.
sorted(list, reverse=True)
Contoh 2: Susun senarai mengikut Susunan menurun
# vowels list vowels = ('e', 'a', 'u', 'o', 'i') # sort the vowels vowels.sort(reverse=True) # print vowels print('Sorted list (in Descending):', vowels)
Pengeluaran
Senarai disusun (dalam Menurun): ('u', 'o', 'i', 'e', 'a')
Susun dengan fungsi tersuai menggunakan kekunci
Sekiranya anda menginginkan implementasi sendiri untuk disortir, sort()
metode ini juga menerima key
fungsi sebagai parameter pilihan.
Berdasarkan hasil fungsi utama, anda dapat menyusun senarai yang diberikan.
list.sort(key=len)
Sebagai alternatif untuk disusun:
sorted(list, key=len)
Di sini, len
adalah fungsi bawaan Python untuk mengira panjang elemen.
Senarai disusun berdasarkan panjang setiap elemen, dari kiraan terendah hingga tertinggi.
Kami tahu bahawa tuple disusun menggunakan parameter pertama secara lalai. Mari lihat bagaimana menyesuaikan sort()
kaedah untuk menyusun menggunakan elemen kedua.
Contoh 3: Susun senarai menggunakan kunci
# take second element for sort def takeSecond(elem): return elem(1) # random list random = ((2, 2), (3, 4), (4, 1), (1, 3)) # sort list with key random.sort(key=takeSecond) # print list print('Sorted list:', random)
Pengeluaran
Senarai disusun: ((4, 1), (2, 2), (1, 3), (3, 4))
Mari kita ambil contoh lain. Katakan kita mempunyai senarai maklumat mengenai pekerja pejabat di mana setiap elemen adalah kamus.
Kami dapat menyusun senarai dengan cara berikut:
# sorting using custom key employees = ( ('Name': 'Alan Turing', 'age': 25, 'salary': 10000), ('Name': 'Sharon Lin', 'age': 30, 'salary': 8000), ('Name': 'John Hopkins', 'age': 18, 'salary': 1000), ('Name': 'Mikhail Tal', 'age': 40, 'salary': 15000), ) # custom functions to get employee info def get_name(employee): return employee.get('Name') def get_age(employee): return employee.get('age') def get_salary(employee): return employee.get('salary') # sort by name (Ascending order) employees.sort(key=get_name) print(employees, end='') # sort by Age (Ascending order) employees.sort(key=get_age) print(employees, end='') # sort by salary (Descending order) employees.sort(key=get_salary, reverse=True) print(employees, end='')
Pengeluaran
(('Nama': 'Alan Turing', 'umur': 25, 'gaji': 10000), ('Nama': 'John Hopkins', 'umur': 18, 'gaji': 1000), ('Nama ':' Mikhail Tal ',' umur ': 40,' gaji ': 15000), (' Nama ':' Sharon Lin ',' usia ': 30,' gaji ': 8000)) ((' Nama ':' John Hopkins ',' umur ': 18,' gaji ': 1000), (' Nama ':' Alan Turing ',' usia ': 25,' gaji ': 10000), (' Nama ':' Sharon Lin ', 'umur': 30, 'gaji': 8000), ('Nama': 'Mikhail Tal', 'umur': 40, 'gaji': 15000)) (('Nama': 'Mikhail Tal', 'usia') : 40, 'gaji': 15000), ('Nama': 'Alan Turing', 'umur': 25, 'gaji': 10000), ('Nama ':' Sharon Lin ',' umur ': 30,' gaji ': 8000), (' Nama ':' John Hopkins ',' usia ': 18,' gaji ': 1000))
Di sini, untuk kes pertama, fungsi khas kami mengembalikan nama setiap pekerja. Oleh kerana namanya adalah string
, Python secara lalai menyusunnya menggunakan susunan abjad.
Untuk kes kedua, umur ( int
) dikembalikan dan disusun mengikut urutan menaik.
Untuk kes ketiga, fungsi mengembalikan gaji ( int
), dan disusun mengikut urutan menurun menggunakan reverse = True
.
Merupakan amalan yang baik untuk menggunakan fungsi lambda apabila fungsinya dapat diringkaskan dalam satu baris. Jadi, kita juga boleh menulis program di atas sebagai:
# sorting using custom key employees = ( ('Name': 'Alan Turing', 'age': 25, 'salary': 10000), ('Name': 'Sharon Lin', 'age': 30, 'salary': 8000), ('Name': 'John Hopkins', 'age': 18, 'salary': 1000), ('Name': 'Mikhail Tal', 'age': 40, 'salary': 15000), ) # sort by name (Ascending order) employees.sort(key=lambda x: x.get('Name')) print(employees, end='') # sort by Age (Ascending order) employees.sort(key=lambda x: x.get('age')) print(employees, end='') # sort by salary (Descending order) employees.sort(key=lambda x: x.get('salary'), reverse=True) print(employees, end='')
Pengeluaran
(('Nama': 'Alan Turing', 'umur': 25, 'gaji': 10000), ('Nama': 'John Hopkins', 'umur': 18, 'gaji': 1000), ('Nama ':' Mikhail Tal ',' umur ': 40,' gaji ': 15000), (' Nama ':' Sharon Lin ',' usia ': 30,' gaji ': 8000)) ((' Nama ':' John Hopkins ',' umur ': 18,' gaji ': 1000), (' Nama ':' Alan Turing ',' usia ': 25,' gaji ': 10000), (' Nama ':' Sharon Lin ', 'umur': 30, 'gaji': 8000), ('Nama': 'Mikhail Tal', 'umur': 40, 'gaji': 15000)) (('Nama': 'Mikhail Tal', 'usia') : 40, 'gaji': 15000), ('Nama': 'Alan Turing', 'umur': 25, 'gaji': 10000), ('Nama ':' Sharon Lin ',' umur ': 30,' gaji ': 8000), (' Nama ':' John Hopkins ',' usia ': 18,' gaji ': 1000))
Untuk mengetahui lebih lanjut mengenai fungsi lambda, lawati Fungsi Lamby Python.