Python Daftar sortir() dengan Contoh

Apa metode sort() di dalamnya Python?

Fungsi pengurutan masuk Python membantu mengurutkan daftar ke dalam urutan menaik atau menurun. Ini dapat digunakan untuk mengurutkan daftar numerik, tupel, dan daftar string. Itu tidak membuat daftar terpisah tetapi memodifikasi atau mengurutkan yang asli.

Sintaks metode Sortir di Python

Fungsi sort memiliki sintaksis berikut seperti yang tercantum di bawah ini: –

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

Fungsi pengurutan memiliki dua parameter opsional, yaitu seperti tercantum di bawah ini: –

  • Kunci: – Ini digunakan untuk mengurutkan fungsi berdasarkan kriteria pengurutan.
  • Reverse: – mengambil nilai sebagai benar atau salah. Jika benar, fungsi khusus ini mengurutkan daftar dalam urutan menurun.

Mengurutkan daftar dalam urutan menaik menggunakan metode Sortir di Python

In Python, fungsi pengurutan, secara default, mengurutkan daftar apa pun dalam urutan menaik. Daftar dalam urutan menaik memiliki nilai terendah di sisi kiri, dan nilai tertinggi ada di sisi kanan.

Contoh:

Python kode:

base_list=["Google","Reliance","Guru99","Content","Syntax"]
base_list.sort()
print("the base list after sorting is",base_list)

Keluaran:

the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']

Penjelasan Kode:

  • Daftar di atas adalah daftar string yang ditentukan secara acak.
  • Fungsi pengurutan dari Python membantu mengurutkan daftar acak dalam urutan menaik, dengan panjang kata terendah di sisi kiri dan panjang kata tertinggi di sisi kanan.

Menyortir daftar dalam urutan menurun

Fungsi pengurutan juga memungkinkan daftar diurutkan dalam urutan menurun. Itu dapat didefinisikan sebagai urutan dimana daftar dimulai dengan nilai tertinggi dan diakhiri dengan nilai terendah.

Parameter kebalikan dari fungsi sortir ditetapkan sebagai true untuk mendapatkan daftar yang diurutkan dalam urutan menurun.

Mari kita lihat contoh di bawah ini: –

Python kode:

base_list=[100,600,400,8000,50]
base_list.sort()
print("the base list after sorting is",base_list)
# Reverse Order
base_list.sort(reverse=True)
print("the base list after REVERSE sorting is",base_list)

Keluaran:

the base list after sorting is [50, 100, 400, 600, 8000]
the base list after REVERSE sorting is [8000, 600, 400, 100, 50]

Catatan: Pastikan bahwa penetapan kata “True” pada parameter kebalikannya dimulai dengan huruf besar “T” untuk menghindari kesalahan run time.

Mengurutkan daftar tupel menggunakan metode Sortir di Python

Python Tuples adalah kumpulan elemen yang tidak dapat diubah yang mengikuti urutan yang teratur. PythonFungsi sortir dapat digunakan untuk mengurutkan daftar tupel menggunakan fungsi yang disesuaikan dan ekspresi lambda.

Fungsi yang disesuaikan dapat dibuat tanpa nama dan direpresentasikan oleh ekspresi lambda. Berikut ini adalah sintaks untuk ekspresi Lambda: –

sintaks:

Lambda arguments: expression

Sintaks di atas setara dengan kode python di bawah ini:

def name (arguments):
return expression

Berikut adalah contoh tupel dan fungsi yang disesuaikan untuk mengilustrasikan bagaimana fungsi pengurutan dengan parameter kunci membantu mengurutkan elemen dalam tupel:-

Python kode:

base_list = [('Alto', 2020, 500),('MSFT', 2022, 300),('Guru99', 2019, 1070)]
def get_key(base_list):
    return base_list[2]
base_list.sort(key=get_key,reverse=True)
print("The change in base list is as follows",base_list)

Keluaran:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

Penjelasan Kode:

  • Parameter kebalikannya didefinisikan sebagai true untuk mengurutkan tupel dalam urutan menurun.
  • Fungsi yang disesuaikan mengambil elemen kedua dari tupel.
  • Ini digunakan sebagai kunci dari fungsi pengurutan.

Mari kita lihat contoh di bawah ini yang menggunakan ekspresi lambda:

Python kode:

base_list = [('Alto', 2020, 500),
('MSFT', 2022, 300),
('Guru99', 2019, 1070)]
base_list.sort(key=lambda base_list:base_list[2],reverse=True)
print("The change in base list is as follows",base_list)

Keluaran:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

Penjelasan:

  • Ekspresi lambda membantu Anda mengurutkan elemen tupel dari tinggi ke rendah dengan kunci sebagai elemen kedua tupel.
  • Program akan memeriksa nilai tertinggi dari elemen kedua tupel.

Menyortir item daftar menggunakan Len sebagai parameter kunci

Len adalah fungsi bawaan yang menentukan panjang item. Panjang yang ditentukan dapat digunakan untuk pengindeksan dalam fungsi pengurutan. Untuk melakukan ini, kami menugaskan Len ke Python parameter kunci fungsi sortir.

Berikut ini Python kode mengilustrasikan cara menggunakan fungsi Len dengan fungsi sortir.

Python Kode:

base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len)
print("The sorted list based on length:",base_list)

Keluaran:

The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']

Penjelasan Kode:

Menyortir item daftar menggunakan Len

  • Panjang elemen menjadi indeks parameter kunci untuk menyusun daftar dalam urutan menaik.
  • Fungsi Len memperkirakan panjang setiap elemen yang ada di daftar dasar.
  • Itu membuat elemen terpendek di sisi kiri dan elemen terbesar di sisi kanan.
  • Di sini kata alto dan java panjangnya 4, diurutkan pertama dalam daftar, disusul Guru99 yang panjangnya 6.

Contoh ini mengilustrasikan konsep parameter kebalikan dalam fungsi pengurutan seperti yang ditunjukkan di bawah ini: –

Python Kode:

base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len,reverse=True)
print("The sorted list based on length:",base_list)

Keluaran:

The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']

Menyortir item daftar menggunakan fungsi yang ditentukan pengguna sebagai parameter kunci

Anda juga dapat menggunakan fungsi yang ditentukan pengguna sebagai parameter kunci untuk mengurutkan daftar. Berikut ini contohnya: –

Python Kode:

base_list = [{'Example':'Python','year':1991},{'Example':'Alto','year':2014},{'Example':'Guru99', 'year':1995},
{'Example':'Google','year':1985},{'Example':'Apple','year':2007},{'Example':'Emails','year':2010},]
def get_year(element):
    return element['year']
base_list.sort(key=get_year)
print("The base list after sorting using explicit criteria",base_list)

Keluaran:

The base list after sorting using explicit criteria [{'Example': 'Google', 'year': 1985}, {'Example': 'Python', 'year': 1991}, {'Example': 'Guru99', 'year': 1995}, {'Example': 'Apple', 'year': 2007}, {'Example': 'Emails', 'year': 2010}, {'Example': 'Alto', 'year': 2014}]

Penjelasan Kode:

  • Fungsi yang ditentukan pengguna dibuat untuk mengembalikan tahun
  • Parameter kunci mengambil fungsi yang ditentukan pengguna sebagai kriteria.
  • Fungsi pengurutan akan menyusun daftar dalam urutan menaik berdasarkan nilai elemen “tahun”.

Perbedaan antara metode pengurutan dan metode pengurutan di Python

Sebelum perbedaannya dirangkum, mari kita pahami sintaks metode Sorted.

Python sintaks:

sorted (list_name, reverse=…., key=..)

Penjelasan Kode:

  • Fungsi sortir mengurutkan daftar menjadi urutan menaik atau menurun.
  • Fungsi ini menerima tiga parameter, yang mana dua parameter bertipe opsional dan satu parameter bertipe wajib.
  • Parameter list_name diperlukan saat menggunakan metode Sorted.
  • Metode Sorted dapat mengambil semua jenis daftar yang dapat diubah sebagai masukan.
  • Parameter kunci dan parameter terbalik adalah parameter opsional di bawah metode yang diurutkan di Python.

Berikut adalah contoh penggunaan fungsi sortir dan sortir Python seperti yang ditunjukkan di bawah ini: –

Python kode:

#Use of the Sorted method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=sorted(Base_list)
print("the New list using sorted method is",New_list)
#Use of the Sort method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=Base_list.sort()
print("the New list using sort method is",New_list)

Keluaran:

the original list is [11, 10, 9, 8, 7, 6]
the new list using the sorted method is [6, 7, 8, 9, 10, 11]
the original list is [11, 10, 9, 8, 7, 6]
the new list using the sort method is None

Penjelasan Kode:

  • Daftar asli diteruskan sebagai parameter yang diperlukan untuk fungsi yang diurutkan.
  • Metode Sorted mengembalikan daftar baru selain daftar asli.
  • Karena tidak ada parameter tambahan yang diteruskan ke metode yang diurutkan, daftar baru secara default diurutkan dalam urutan menaik.
  • Fungsi pengurutan tidak membuat daftar baru.

Berikut ini adalah poin-poin persamaan dan perbedaan utama: –

Fungsi yang diurutkan Fungsi pengurutan
Fungsi yang diurutkan masuk Python adalah fungsi bawaan yang menggunakan list_name sebagai parameter yang diperlukan. Fungsi pengurutan tidak menggunakan daftar asli sebagai parameter.
Metode yang diurutkan mengembalikan daftar baru Fungsi pengurutan tidak mengembalikan daftar baru
Fungsi yang diurutkan harus digunakan untuk daftar yang dapat diubah Fungsi pengurutan harus digunakan untuk daftar yang tidak dapat diubah.
Itu tidak mengubah daftar asli dan memungkinkan kami menyimpan data asli. Fungsi pengurutan mengubah fungsi asli dan karenanya menggunakan lebih sedikit ruang memori

Kapan menggunakan metode pengurutan atau metode pengurutan?

Mari kita ambil contoh yang memerlukan pengurutan data ras. Program ini menggunakan nomor bib dan waktu yang dibutuhkan dalam hitungan detik untuk menyelesaikan lomba.

Python kode:

from collections import namedtuple
Base = namedtuple('Runner', 'bibnumber duration')
blist = []
blist.append(Base('8567', 1500))
blist.append(Base('5234', 1420))
blist.append(Base('2344', 1600))
blist.append(Base('2342', 1490))
blist.append(Base('23444', 1620))
blist.append(Base('6674', 1906))
print("original list",blist)
blist.sort(key=lambda x: getattr(x, 'duration'))
top_five_result = blist[:5]
print("Results using sort function",top_five_result)
r_blist=sorted(blist,key=lambda x: getattr(x, 'duration'))
top_five_result = r_blist[:5]
print("Results using sorted function",top_five_result)

Keluaran:

original list [Runner(bibnumber='8567', duration=1500), Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='23444', duration=1620), Runner(bibnumber='6674', duration=1906)]

Results using sort function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

Results using sorted function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]

Penjelasan Kode:

  • Daftar dasar diurutkan menggunakan fungsi pengurutan dan fungsi pengurutan.
  • Daftar dasar hilang ketika fungsi pengurutan diterapkan.
  • Fungsi pengurutan tidak boleh diterapkan pada kumpulan data asli. Ini harus digunakan bila ada versi salinan dari kumpulan data asli.
  • Fungsi Sorted mempertahankan daftar aslinya. Itu tidak mengesampingkannya.
  • Hal ini menawarkan ketertelusuran yang lebih baik dan pengelolaan data yang efektif.

Kesimpulan

  • Fungsi sortir membantu dalam mengurutkan daftar numerik dan string dengan python.
  • Ini juga dapat membantu dalam menyortir tupel.
  • Reverse dan key adalah parameter opsional dari fungsi tersebut.
  • Jika ada kebutuhan untuk mempunyai daftar terpisah dan sekaligus mempunyai daftar asli, maka fungsi sortir harus digunakan, jika tidak, fungsi sortir harus dimanfaatkan untuk mencapai pemanfaatan memori yang optimal.