Cara Mengurutkan Daftar dengan Python

Diterbitkan: 2022-03-30

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( sorted()
  • Contoh kode pengurutan daftar dalam urutan menaik dan menurun
  • Sesuaikan pengurutan menggunakan parameter key
  • Perbedaan antara sort() vs sorted()

Ayo 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.

  • <list> adalah objek daftar Python yang valid.
  • reverse adalah parameter opsional yang mengambil True atau False.
  • Nilai default dari reverse adalah False , dan daftar diurutkan dalam urutan menaik. Berikan True untuk mengurutkan daftar dalam urutan menurun.
  • key juga merupakan parameter opsional yang disetel ke <func> .
  • <func> 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 nums daftar. Untuk mengurutkan daftar dalam urutan menaik, Anda dapat memanggil metode sort() pada daftar.

Jalankan cuplikan kode berikut.

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

Nomor daftar telah nums 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 reverse 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 tersebut sekarang diurutkan dalam urutan menurun.

Cara Menggunakan kunci dengan Python sort() Metode

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

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

 def mod5(x): return x % 5

Dan kami ingin menggunakan fungsi di atas sebagai key .

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 key 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 terpisah, Anda sebaiknya menggunakan fungsi lambda. Dalam Python, lambda 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.

python-sort-list

Dalam contoh kita, students adalah daftar siswa di Hogwarts. Dan kami ingin mengurutkannya dalam urutan abjad dari 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, setel 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 key opsional.

Simak daftarnya berikut ini, houses .

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

Di sini, houses 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 key 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 key 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 sorted() untuk melakukan ini.

Sintaks Python diurutkan () Fungsi

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

Sintaks untuk fungsi sorted() Python adalah:

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

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

  • <list> adalah objek daftar Python yang valid dan merupakan parameter yang diperlukan .
  • reverse dan key adalah parameter opsional

Catatan : Tidak seperti metode sort() yang hanya bekerja pada daftar, fungsi sort sorted() 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 sorted() dengan nums sebagai argumen. Dan tetapkan ke daftar sorted_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 nums asli tidak diubah—karena sorted() mengembalikan daftar baru. Ini diverifikasi di bawah ini.

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

#2 . Sekarang, atur parameter opsional reverse ke True dan dapatkan sorted_nums2 .

Seperti yang ditunjukkan pada sel kode di bawah ini, sorted_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 sorted() 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 key opsional. Setel key ke len . Ini akan mengurutkan daftar berdasarkan panjang string.

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

String dengan panjang terpendek muncul pertama kali dalam 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, pir 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( sorted() . Di bagian ini, mari kita sebutkan perbedaan antara kedua metode ini.

Python .sort() Metode Python diurutkan () Fungsi
Mengurutkan daftar di tempatnya—memodifikasi daftar asli Mengembalikan daftar baru yang diurutkan
Bekerja hanya dengan daftar Python Bekerja dengan iterable Python seperti daftar, string, dan koleksi lainnya
Memiliki tipe pengembalian None Mengembalikan 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 = <func>) dengan parameter reverse dan key opsional untuk mengurutkan daftar pada tempatnya.
  • Gunakan diurutkan(daftar, terbalik = Benar | Salah, kunci = <fungsi>) 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 Geekflare Online Python Compiler.