Kaedah pengisihan terbina dalam
Python mempunyai fungsi isihan pantas terbina dalam yang dipanggil
sorted()
dan
sort()
. Ia menggunakan
Timsort
.
Pertimbangkan untuk menggunakan fungsi isihan terbina dalam.
1) Mendapat tatasusunan baharu
B
yang sepadan dengan tatasusunan
A
diisih dalam tertib menaik (secara lalai, mengisih dalam tertib menaik):
B = diisih(A)
2) Mendapatkan tatasusunan B
baharu yang sepadan dengan tatasusunan A
diisih dalam tertib menurun:
B = diisih(A, terbalik = Betul)
terbalik - diterjemahkan daripada bahasa Inggeris "terbalik".
3) Untuk melaksanakan pengisihan bukan standard, kunci pengisihan diperlukan - hujah key
.
Untuk mengisih dalam tertib menaik mengikut digit terakhir nombor, kuncinya ialah digit terakhir nombor itu.
Untuk melakukan ini, anda perlu menulis fungsi yang akan mengembalikan kunci yang diperlukan kepada kami - dalam kes kami, digit terakhir nombor itu.
# fungsi yang mengembalikan kekunci isihan
# - digit terakhir nombor
def lastDigit(n):
kembali n% 10
B = diisih(A, kunci = lastDigit)
4) Menggunakan fungsi lambda - tanpa nama.
Jika anda tidak mahu menulis fungsi yang berasingan, kerana kesederhanaannya, maka anda boleh menggunakan fungsi lambda yang dipanggil. Fungsi sedemikian ditulis terus apabila dipanggil dalam parameter key
.
B = diisih(A, kunci = lambda x: x % 10)
5) Jika anda perlu mengisih tatasusunan "di tempatnya" (tanpa memperuntukkan tatasusunan tambahan), lebih baik menggunakan kaedah sort()
.
Contohnya, mengisih tatasusunan A
mengikut digit terakhir dalam tertib menurun kelihatan seperti ini:
A.sort(key = lambda x: x % 10, reverse = True)