Cara Mengurutkan Daftar dengan Python

How Sort Lists Python



Artikel ini akan membahas panduan tentang menyortir daftar dengan Python. Objek daftar Python adalah kumpulan dari satu atau lebih item yang dipisahkan koma. Ini adalah objek yang dapat diubah dan elemennya dapat diakses dengan mengulangi daftar menggunakan pernyataan loop dan ekspresi lainnya. Anda dapat mengurutkan daftar Python menggunakan metode sortir dan sortir, keduanya dijelaskan dalam artikel. Semua contoh kode dalam artikel ini diuji dengan Python 3.9.5 di Ubuntu 21.04.

Metode Sortir

Metode sortir mengurutkan daftar di tempat. Dengan kata lain, itu akan memodifikasi objek daftar yang akan Anda urutkan dan susun ulang elemennya. Jika Anda tidak memerlukan daftar asli dan tidak keberatan daftar mengubah urutan elemen di tempat, ini adalah metode paling efisien di Python untuk mengurutkan daftar. Pertimbangkan contoh ini:







NS= [2, 8, 6, 4]

NS.menyortir()

mencetak (NS)

Setelah menjalankan contoh kode di atas, Anda akan mendapatkan output berikut:



[2, 4, 6, 8]

Pernyataan pertama dalam contoh kode mendefinisikan daftar. Selanjutnya, metode sortir dipanggil pada daftar. Saat Anda mencetak daftar, Anda dapat melihat bahwa urutan daftar asli telah diubah.



Secara default, Python mengurutkan daftar dalam urutan menaik. Jika Anda ingin mengurutkan daftar dalam urutan menurun, gunakan metode terbalik, seperti yang ditunjukkan pada contoh kode di bawah ini:





NS= [2, 8, 6, 4]

NS.menyortir()

NS.membalikkan()

mencetak (NS)

Setelah menjalankan contoh kode di atas, Anda akan mendapatkan output berikut:

[8, 6, 4, 2]

Metode sebaliknya juga mengubah daftar Python di tempat tanpa membuat daftar baru.



Jika daftar Anda berisi elemen string, memanggil metode sortir akan mengurutkannya berdasarkan abjad di mana simbol dan angka diurutkan terlebih dahulu. Perhatikan contoh kode di bawah ini:

NS= ['S', 'ke', 'Dengan', '4', '#']

NS.menyortir()
mencetak (NS)

Setelah menjalankan contoh kode di atas, Anda akan mendapatkan output berikut:

['#', '4', 'ke', 'S', 'Dengan']

Anda juga dapat menggunakan metode sebaliknya pada daftar yang berisi elemen string.

NS= ['S', 'ke', 'Dengan', '4', '#']

NS.menyortir()

NS.membalikkan()

mencetak (NS)

Setelah menjalankan contoh kode di atas, Anda akan mendapatkan output berikut:

['Dengan', 'S', 'ke', '4', '#']

Metode yang Diurutkan

Metode yang diurutkan juga mengurutkan daftar Python, dengan cara yang sama seperti metode pengurutan. Namun, alih-alih mengubah daftar asli, ini mengembalikan daftar baru sehingga daftar asli Anda tidak tersentuh jika Anda ingin menggunakannya kembali. Perhatikan kode di bawah ini:

daftar1= ['S', 'ke', 'Dengan', '4', '#']

daftar2= diurutkan(daftar1)

mencetak (daftar1,daftar2)

Setelah menjalankan contoh kode di atas, Anda akan mendapatkan output berikut:

['S', 'ke', 'Dengan', '4', '#'] ['#', '4', 'ke', 'S', 'Dengan']

Anda dapat melihat di output bahwa list1 masih utuh dan list2 sekarang memiliki elemen yang diurutkan. Anda juga dapat menggunakan metode sebaliknya pada list2 untuk mengubah metodologi pemesanannya.

Argumen Terbalik

Anda dapat menggunakan argumen terbalik sebagai alternatif untuk membalikkan fungsi di kedua metode sortir dan sortir untuk mendapatkan daftar yang diurutkan dalam urutan menurun. Cukup berikan nilai True untuk mengubah urutan penyortiran:

daftar1= ['S', 'ke', 'Dengan', '4', '#']

daftar2= diurutkan(daftar1,membalikkan=benar)

mencetak (daftar1,daftar2)

Setelah menjalankan contoh kode di atas, Anda akan mendapatkan output berikut:

['S', 'ke', 'Dengan', '4', '#'] ['Dengan', 'S', 'ke', '4', '#']

Menggunakan Fungsi Kunci untuk Menentukan Logika Anda Sendiri untuk Menyortir Elemen Daftar

Dalam metode pengurutan dan pengurutan, Anda dapat menentukan argumen kunci tambahan yang menggunakan fungsi yang dapat dipanggil sebagai nilainya. Argumen kunci ini dapat diberikan fungsi yang ada dari modul Python bawaan atau Anda dapat menyediakan fungsi Anda sendiri dengan logika khusus. Perhatikan contoh kode di bawah ini:

daftar1= ['abcde', 'xyz', 'ijkl']

daftar2= diurutkan(daftar1,kunci=len)

mencetak (daftar1,daftar2)

daftar1.menyortir(kunci=len)

mencetak (daftar1)

Setelah menjalankan contoh kode di atas, Anda akan mendapatkan output berikut:

['abcde', 'xyz', 'ijkl'] ['xyz', 'ijkl', 'abcde']

['xyz', 'ijkl', 'abcde']

Contoh kode mengilustrasikan penggunaan argumen kunci dalam metode yang diurutkan dan diurutkan. Fungsi yang disediakan untuk itu disebut len ​​yang menentukan panjang objek string atau iterable. Fungsi atau callable seharusnya hanya mengambil satu argumen. Anda menetapkannya ke argumen kunci tanpa menggunakan kurung kurawal. Fungsi yang dapat dipanggil yang dipasok ke argumen kunci dipanggil ke setiap elemen daftar. Nilai yang dikembalikan dari metode yang dapat dipanggil ini kemudian digunakan sebagai kunci untuk menyortir daftar. Oleh karena itu, memasok fungsi len ke argumen kunci mengurutkan elemen daftar dalam urutan panjangnya, yaitu dari terpendek ke terpanjang. Seperti yang dinyatakan sebelumnya, Anda selalu dapat menggunakan metode terbalik untuk membalikkan metodologi penyortiran.

Anda juga dapat menggunakan fungsi kustom Anda sendiri atau fungsi lambda satu baris yang mengembalikan nilai ekspresi tunggal. Lihatlah contoh kode di bawah ini di mana daftar memiliki tupel inventaris peti buah saat ini:

daftar1= [('buah mangga', 99), ('jeruk', 51), ('pisang', 76)]

daftar1.menyortir(kunci=lambdainventaris: inventaris[1])

mencetak (daftar1)

Setelah menjalankan contoh kode di atas, Anda akan mendapatkan output berikut:

[('jeruk', 51), ('pisang', 76), ('buah mangga', 99)]

Fungsi lambda dilengkapi dengan inventaris argumen, yang merupakan setiap elemen daftar dalam bentuk tuple. Kemudian mengembalikan elemen kedua dari setiap tuple sebagai kunci (pada indeks 1). Fungsi sortir kemudian mengurutkan semua tupel berdasarkan elemen kedua dalam urutan menaik. Anda juga dapat menggunakan fungsi terbalik atau argumen terbalik pada hasil akhir untuk membalik urutan pengurutan.

Kesimpulan

Ini adalah beberapa cara untuk mengurutkan konten daftar yang dapat diubah dengan Python. Argumen kunci memungkinkan Anda untuk menulis logika penyortiran kustom Anda sendiri, cocok untuk aplikasi yang mungkin memiliki kebutuhan berbeda dari metode pengurutan bawaan.