Cara Mengurutkan Daftar dengan Python

Artikel ini akan mengajari Anda cara mengurutkan daftar dengan Python.

Di Python, Anda dapat menggunakan metode sort() untuk mengurutkan daftar di tempat. Atau Anda dapat menggunakan fungsi sort() bawaan untuk mendapatkan salinan daftar yang diurutkan.

Dalam tutorial ini, Anda akan belajar:

  • Sintaks dari metode sort() dan fungsi sort()
  • Contoh kode pengurutan daftar dalam urutan menaik dan menurun
  • Sesuaikan pengurutan menggunakan parameter kunci
  • Perbedaan antara sort() vs diurutkan()

Mari kita mulai!👩🏽‍💻

Sintaks Python sort() Metode

Metode sort() bekerja pada daftar Python. Dan itu mengurutkan daftar di tempatnya—dan memodifikasi daftar aslinya.

Sintaks untuk metode sort() Python adalah:

<list>.sort(reverse = True | False, key = <func>)

Sekarang mari kita menguraikan sintaks di atas.

  • adalah objek daftar Python yang valid.
  • reverse adalah parameter opsional yang mengambil True atau False.
  • Nilai default kebalikannya adalah False, dan daftar diurutkan dalam urutan menaik. Berikan True untuk mengurutkan daftar dalam urutan menurun.
  • key juga merupakan parameter opsional yang disetel ke .
  • dapat berupa fungsi bawaan atau fungsi yang ditentukan pengguna.

Di bagian berikutnya, Anda akan mulai mengkodekan contoh sederhana.

Cara Mengurutkan Daftar Python dalam Urutan Ascending

Pertimbangkan nomor daftar. Untuk mengurutkan daftar dalam urutan menaik, Anda dapat memanggil metode sort() pada daftar.

Jalankan potongan kode berikut.

nums = [25,13,6,17,9]
nums.sort()
print(nums)

# Output: [6, 9, 13, 17, 25]

Nomor daftar telah diurutkan dalam urutan menaik, dan daftar asli telah dimodifikasi. Ini disebut penyortiran di tempat.

Cara Mengurutkan Daftar Python dalam Urutan Menurun

Untuk mengurutkan daftar dalam urutan menurun, atur terbalik ke True, seperti yang ditunjukkan di bawah ini.

nums = [25,13,6,17,9]
nums.sort(reverse = True)
print(nums)

# Output: [25, 17, 13, 9, 6]

Anda dapat melihat bahwa daftar sekarang diurutkan dalam urutan menurun.

Cara Menggunakan kunci dengan Python sort() Metode

Di bagian ini, mari gunakan parameter kunci dan sesuaikan pengurutannya.

Di sini, mod5() adalah fungsi yang mengambil angka x, dan mengembalikan sisanya ketika angka x dibagi 5.

def mod5(x):
  return x % 5 

Dan kami ingin menggunakan fungsi di atas sebagai kuncinya.

Sekarang, jalankan sel kode berikut.

nums = [25,13,6,17,9]
nums.sort(key = mod5)
print(nums)

# Output: [25, 6, 17, 13, 9]

Luangkan waktu sebentar untuk mengurai output.

Perhatikan bagaimana alih-alih penyortiran biasa, Anda sekarang menyesuaikan pengurutan Anda sesuai dengan kuncinya yaitu mod5.

  • Bilangan yang meninggalkan sisa minimum bila dibagi 5 menjadi yang pertama sekarang.
  • Dan angka yang meninggalkan sisa terbesar jika dibagi 5 adalah elemen terakhir dalam daftar yang diurutkan.

Untuk memverifikasi ini masalahnya, jalankan cuplikan kode berikut.

nums = [25,13,6,17,9]

for num in nums:
  print(f"{num} leaves remainder {num%5} when divided by 5")

# Output
25 leaves remainder 0 when divided by 5
13 leaves remainder 3 when divided by 5
6 leaves remainder 1 when divided by 5
17 leaves remainder 2 when divided by 5
9 leaves remainder 4 when divided by 5

5 membagi 25 dengan tepat, dan sisanya adalah 0. Jadi itulah elemen pertama dalam daftar yang diurutkan. 6 meninggalkan sisa 1, jadi ini adalah elemen kedua, dan seterusnya. 9 meninggalkan sisa 4 saat dibagi 5, dan itu adalah elemen terakhir dalam daftar yang diurutkan.

Alih-alih mendefinisikan fungsi yang terpisah, Anda mungkin juga menggunakan fungsi lambda. Dalam Python, lambdas adalah fungsi anonim satu baris. lambda args : ekspresi mengembalikan ekspresi yang dihitung pada args.

Sekarang, mari kita tulis ulang pengurutan di atas menggunakan ekspresi lambda, seperti yang ditunjukkan di bawah ini.

nums = [25,13,6,17,9]
nums.sort(key = lambda x:x%5)
print(nums)

# Output: [25, 6, 17, 13, 9]

Sejauh ini, Anda telah mempelajari cara mengurutkan daftar angka. Selanjutnya, mari kita lihat bagaimana Anda dapat mengurutkan daftar string dengan Python.

Cara Mengurutkan Daftar Python dalam Urutan Abjad

Di bagian ini, Anda akan belajar mengurutkan daftar string—dengan contoh yang terinspirasi oleh Harry Potter.

Dalam contoh kita, siswa adalah daftar siswa di Hogwarts. Dan kami ingin mengurutkannya dalam urutan abjad nama mereka.

Saat menyortir daftar string, pengurutan default adalah dalam urutan abjad.

students = ["Harry","Ron","Hermione","Draco","Cedric"]

Mari cetak daftar yang diurutkan untuk memverifikasi hasil penyortiran.

students.sort()
print(students)

# Output
['Cedric','Draco', 'Harry', 'Hermione', 'Ron']

Cara Mengurutkan Daftar Python dalam Urutan Abjad Terbalik

Untuk mengurutkan daftar dalam urutan abjad terbalik, atur reverse = True, seperti yang ditunjukkan pada cuplikan kode di bawah ini.

students.sort(reverse = True)
print(students)

# Output
['Ron', 'Hermione', 'Harry', 'Draco', 'Cedric']

Dari output, Anda dapat melihat bahwa daftar memang telah diurutkan dalam urutan terbalik.

Cara Menggunakan Parameter Kunci Sesuaikan Sortir

Di bagian ini, mari menyesuaikan pengurutan menggunakan parameter kunci opsional.

Simak daftarnya berikut ini, rumah.

houses = [
            {1:"Draco","house":"Slytherin"},
            {2:"Harry","house":"Gryffindor"},
            {3:"Cedric","house":"Hufflepuff"}
         ]

Di sini, rumah adalah daftar kamus. Setiap kamus berisi dua pasangan nilai kunci, satu menunjukkan nama siswa dan yang lainnya menunjukkan rumah tempat mereka berada.

Sekarang, kami ingin mengurutkan daftar rumah ini dalam urutan abjad dari rumah mereka.

Seperti yang mungkin sudah Anda duga sekarang, kita harus mengatur parameter kunci ke rumah siswa tertentu.

Untuk mengambil rumah setiap siswa, Anda dapat mendefinisikan fungsi returnHouse(), seperti yang ditunjukkan di bawah ini.

def returnHouse(student):
  return student['house']

Fungsi ini mengembalikan rumah tempat siswa tersebut berada.

Sekarang, Anda dapat memanggil metode sort() pada daftar rumah, seperti yang ditunjukkan.

houses.sort(key=returnHouse)

Pada output di bawah, perhatikan bagaimana daftar diurutkan berdasarkan rumah dan bukan nama siswa. Itu sebabnya kami memiliki Gryffindor, Hufflepuff, dan Slytherin—dalam urutan abjad.

print(houses)

# Output
[{2: 'Harry', 'house': 'Gryffindor'}, 
{3: 'Cedric', 'house': 'Hufflepuff'}, 
{1: 'Draco', 'house': 'Slytherin'}]

Untuk menentukan parameter kunci yang sesuai, Anda juga dapat menggunakan fungsi lambda. Untuk setiap item daftar, fungsi ini mengembalikan rumah untuk item daftar itu.

Jalankan sel kode berikut untuk memverifikasi ini.

houses.sort(key=lambda student:student["house"])
print(houses)

# Output
[{2: 'Harry', 'house': 'Gryffindor'}, 
{3: 'Cedric', 'house': 'Hufflepuff'}, 
{1: 'Draco', 'house': 'Slytherin'}]

Dalam semua contoh sejauh ini, Anda telah menggunakan metode sort() pada daftar. Dan Anda sekarang tahu bahwa itu mengubah daftar asli.

Bagaimana jika Anda ingin mempertahankan daftar asli apa adanya tetapi mendapatkan salinan daftar yang diurutkan?

Nah, dengan Python, Anda bisa menggunakan fungsi sort() untuk melakukan ini.

Sintaks Python diurutkan () Fungsi

Fungsi diurutkan() mengambil daftar atau koleksi apa pun sebagai argumen. Dan itu mengembalikan salinan daftar yang diurutkan—dan daftar aslinya tidak diubah.

Sintaks untuk fungsi sort() Python adalah:

<sorted_copy> = sorted(<list>, reverse = True | False, key = <func>)

Perhatikan bagaimana sintaksnya sangat mirip dengan metode sort() yang kita lihat sebelumnya.

  • adalah objek daftar Python yang valid dan merupakan parameter yang diperlukan.
  • mundur dan kunci adalah parameter opsional

Catatan: Tidak seperti metode sort() yang hanya bekerja pada daftar, fungsi sort() dapat digunakan untuk mengurutkan Python yang dapat diubah, seperti daftar, string, dan kamus.

Cara Mengurutkan Daftar Python Menggunakan Fungsi sort()

#1. Dalam contoh ini, nums adalah daftar angka.

Anda dapat memanggil fungsi sort() dengan nums sebagai argumen. Dan tetapkan ke daftar sort_nums1.

nums = [25,13,6,17,9]
sorted_nums1 = sorted(nums)
print(sorted_nums1)

# Output: [6, 9, 13, 17, 25]

Pada output di atas, Anda dapat melihat bahwa nums telah diurutkan dalam urutan menaik secara default.

Juga, perhatikan bahwa daftar nomor asli tidak diubah—karena diurutkan() mengembalikan daftar baru. Ini diverifikasi di bawah ini.

print(nums)
 # Output: [25, 13, 6, 17, 9]

#2. Sekarang, atur parameter opsional terbalik ke True dan dapatkan sort_nums2.

Seperti yang ditunjukkan pada sel kode di bawah ini, sort_nums2 adalah daftar baru dengan item yang diurutkan dalam urutan menurun.

sorted_nums2 = sorted(nums,reverse = True)
print(sorted_nums2)

# Output: [25, 17, 13, 9, 6]

#3. Dalam contoh ini, mari bekerja dengan daftar string.

Seperti contoh sebelumnya, memanggil fungsi sort() akan mengembalikan daftar baru. Dan item diurutkan dalam urutan abjad.

fruits = ['pears','strawberry','apple','pineapple','blueberry']
sorted_fr1 = sorted(fruits)
print(sorted_fr1)

# Output:
['apple', 'blueberry', 'pears', 'pineapple', 'strawberry']

#4. Sekarang, mari kita sesuaikan pengurutan menggunakan parameter kunci opsional. Setel kunci ke len. Ini akan mengurutkan daftar berdasarkan panjang string.

Catatan: Dalam Python, fungsi built-in len() menerima iterable apa pun, seperti daftar, string, tupel, dan sebagainya. Dan itu mengembalikan panjang iterable.

String dengan panjang terpendek muncul pertama di daftar yang diurutkan, dan string terpanjang muncul di akhir daftar yang diurutkan.

fruits = ['pear','strawberry','apple','pineapple','blueberry']
sorted_fr2 = sorted(fruits,key=len)
print(sorted_fr2)

# Output:
['pear', 'apple', 'pineapple', 'blueberry', 'strawberry']

Pada output di atas, pear adalah string terpendek, dan strawberry adalah string terpanjang.

Python sort() Metode vs. sortir() Fungsi

Sejauh ini, Anda telah mempelajari cara menggunakan metode sort() serta fungsi sort(). Di bagian ini, mari kita sebutkan perbedaan antara kedua metode ini.

Python .sort() MethodPython sort() FunctionMengurutkan daftar di tempatnya—memodifikasi daftar asliMengembalikan daftar baru yang diurutkanBerfungsi hanya dengan daftar PythonBekerja dengan iterable Python seperti daftar, string, dan koleksi lainnyaMemiliki tipe pengembalian NoneMengembalikan salinan yang diurutkan dari iterable

Menyimpulkan

Saya harap Anda menemukan tutorial daftar Python ini bermanfaat.

Mari kita cepat meringkas apa yang telah kita bahas.

  • Gunakan list.sort(reverse = True | False, key = ) dengan parameter reverse dan key opsional untuk mengurutkan daftar pada tempatnya.
  • Gunakan diurutkan(daftar, terbalik = Benar | Salah, kunci = ) untuk mendapatkan salinan daftar yang diurutkan.

Sekarang setelah Anda mempelajari cara mengurutkan daftar Python, pelajari tentang pemahaman daftar dengan Python. Atau Anda juga bisa mempelajari cara menangani file atau bekerja dengan file JSON dengan Python.

Anda dapat mencoba contoh yang diberikan di atas di techking.id Online Python Compiler.

  Cara Menghapus Akun LinkedIn Anda [Permanently]