Sortir Daftar Python ()

Metode sort () mengurutkan elemen dari daftar yang diberikan dalam urutan naik atau turun tertentu.

Sintaks dari sort()metode ini adalah:

 list.sort (key =…, reverse =…)

Alternatifnya, Anda juga bisa menggunakan fungsi sort () bawaan Python untuk tujuan yang sama.

 diurutkan (daftar, kunci =…, mundur =…)

Catatan: Perbedaan paling sederhana antara sort()dan sorted()adalah: sort()mengubah daftar secara langsung dan tidak mengembalikan nilai apa pun, sementara sorted()tidak mengubah daftar dan mengembalikan daftar yang diurutkan.

sort () Parameter

Secara default, sort()tidak memerlukan parameter tambahan. Namun, ini memiliki dua parameter opsional:

  • reverse - Jika True, daftar yang diurutkan dibalik (atau diurutkan dalam urutan menurun)
  • key - fungsi yang berfungsi sebagai kunci untuk perbandingan sortir

Kembalikan nilai dari sort ()

The sort()metode tidak mengembalikan nilai apapun. Sebaliknya, itu mengubah daftar aslinya.

Jika Anda ingin fungsi mengembalikan daftar yang diurutkan daripada mengubah daftar asli, gunakan sorted().

Contoh 1: Menyortir daftar yang diberikan

 # vowels list vowels = ('e', 'a', 'u', 'o', 'i') # sort the vowels vowels.sort() # print vowels print('Sorted list:', vowels)

Keluaran

 Daftar yang diurutkan: ('a', 'e', ​​'i', 'o', 'u')

Urutkan dalam urutan menurun

The sort()Metode menerima reverseparameter sebagai argumen opsional.

Pengaturan reverse = Truemengurutkan daftar dalam urutan menurun.

 list.sort(reverse=True)

Sebagai alternatif sorted(), Anda dapat menggunakan kode berikut.

 sorted(list, reverse=True)

Contoh 2: Urutkan daftar dalam urutan menurun

 # vowels list vowels = ('e', 'a', 'u', 'o', 'i') # sort the vowels vowels.sort(reverse=True) # print vowels print('Sorted list (in Descending):', vowels)

Keluaran

 Daftar yang diurutkan (dalam Descending): ('u', 'o', 'i', 'e', ​​'a')

Urutkan dengan fungsi kustom menggunakan tombol

Jika Anda menginginkan implementasi Anda sendiri untuk pengurutan, sort()metode ini juga menerima keyfungsi sebagai parameter opsional.

Berdasarkan hasil fungsi kunci, Anda dapat mengurutkan daftar yang diberikan.

 list.sort(key=len)

Alternatifnya untuk diurutkan:

 sorted(list, key=len)

Di sini, lenadalah fungsi bawaan Python untuk menghitung panjang sebuah elemen.

Daftar ini diurutkan berdasarkan panjang setiap elemen, dari jumlah terendah hingga tertinggi.

Kita tahu bahwa tupel diurutkan menggunakan parameter pertamanya secara default. Mari kita lihat cara menyesuaikan sort()metode untuk mengurutkan menggunakan elemen kedua.

Contoh 3: Urutkan daftar 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)

Keluaran

 Daftar yang diurutkan: ((4, 1), (2, 2), (1, 3), (3, 4))

Mari kita ambil contoh lain. Misalkan kita memiliki daftar informasi tentang karyawan suatu kantor dimana setiap elemennya adalah kamus.

Kami dapat mengurutkan daftar 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='')

Keluaran

(('Nama': 'Alan Turing', 'usia': 25, 'gaji': 10000), ('Nama': 'John Hopkins', 'usia': 18, 'gaji': 1000), ('Nama ':' Mikhail Tal ',' usia ': 40,' gaji ': 15000), (' Nama ':' Sharon Lin ',' usia ': 30,' gaji ': 8000)) ((' Nama ':' John Hopkins ',' umur ': 18,' gaji ': 1000), (' Nama ':' Alan Turing ',' umur ': 25,' gaji ': 10000), (' Nama ':' Sharon Lin ', 'usia': 30, 'gaji': 8000), ('Nama': 'Mikhail Tal', 'usia': 40, 'gaji': 15000)) (('Nama': 'Mikhail Tal', 'usia' : 40, 'gaji': 15000), ('Nama': 'Alan Turing', 'umur': 25, 'gaji': 10000), ('Nama ':' Sharon Lin ',' usia ': 30,' gaji ': 8000), (' Nama ':' John Hopkins ',' usia ': 18,' gaji ': 1000))

Di sini, untuk kasus pertama, fungsi kustom kami mengembalikan nama setiap karyawan. Karena namanya a string, Python secara default mengurutkannya menggunakan urutan abjad.

Untuk kasus kedua, age ( int) dikembalikan dan diurutkan dalam urutan menaik.

Untuk kasus ketiga, fungsi mengembalikan gaji ( int), dan diurutkan dalam urutan menurun menggunakan reverse = True.

Merupakan praktik yang baik untuk menggunakan fungsi lambda jika fungsi tersebut dapat diringkas dalam satu baris. Jadi, kita juga bisa 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='')

Keluaran

(('Nama': 'Alan Turing', 'usia': 25, 'gaji': 10000), ('Nama': 'John Hopkins', 'usia': 18, 'gaji': 1000), ('Nama ':' Mikhail Tal ',' usia ': 40,' gaji ': 15000), (' Nama ':' Sharon Lin ',' usia ': 30,' gaji ': 8000)) ((' Nama ':' John Hopkins ',' umur ': 18,' gaji ': 1000), (' Nama ':' Alan Turing ',' umur ': 25,' gaji ': 10000), (' Nama ':' Sharon Lin ', 'usia': 30, 'gaji': 8000), ('Nama': 'Mikhail Tal', 'usia': 40, 'gaji': 15000)) (('Nama': 'Mikhail Tal', 'usia' : 40, 'gaji': 15000), ('Nama': 'Alan Turing', 'umur': 25, 'gaji': 10000), ('Nama ':' Sharon Lin ',' usia ': 30,' gaji ': 8000), (' Nama ':' John Hopkins ',' usia ': 18,' gaji ': 1000))

Untuk mempelajari lebih lanjut tentang fungsi lambda, kunjungi Python Lambda Functions.

Artikel yang menarik...