Pengisihan senarai: Penjelasan terperinci tentang kaedah pengisihan, disusun dan numpy.argsort Python

王林
Lepaskan: 2023-06-10 09:22:16
asal
2179 orang telah melayarinya

Dalam pengaturcaraan Python, selalunya perlu mengisih senarai atau tatasusunan. Python menyediakan pelbagai kaedah pengisihan, termasuk isihan, diisih, numpy.argsort, dsb. Artikel ini akan memperkenalkan secara terperinci penggunaan dan langkah berjaga-jaga bagi kaedah pengisihan ini.

1. Kaedah isihan
Kaedah isihan ialah kaedah terbina dalam senarai Python Ia boleh mengisih senarai di tempatnya (iaitu, ia mengembalikan nilai tetapi tidak menghasilkan objek isihan baharu). , dan tidak memerlukan perpustakaan import tambahan. Kaedah isihan mempunyai dua parameter: kunci dan terbalik. kekunci menunjukkan kekunci yang digunakan semasa mengisih, dan terbalik menunjukkan sama ada hendak melakukan pengisihan terbalik. Contohnya:

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print(my_list) # 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

my_list.sort(reverse=True)
print(my_list) # 输出 [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

my_list = ["apple", "banana", "cherry", "orange"]
my_list.sort(key=lambda x: len(x))
print(my_list) # 输出 ["apple", "cherry", "orange", "banana"]
Salin selepas log masuk

Dalam contoh di atas, contoh pertama mengisih senarai integer, contoh kedua mengisih senarai dalam susunan terbalik dan contoh ketiga menggunakan ungkapan lambda untuk mengisih senarai rentetan mengikut panjang.

Perlu diambil perhatian bahawa kaedah isihan telah disediakan, yang akan mengubah susunan senarai asal Nilai pulangan ialah Tiada, jadi anda tidak boleh terus melakukan operasi pada senarai yang diisih a Buat salinan atau gunakan kaedah lain untuk menyimpan hasil yang diisih.

2. Fungsi diisih
Fungsi diisih ialah fungsi terbina dalam Python yang boleh mengisih senarai, tuple, rentetan, dsb., dan mengembalikan objek diisih baharu tanpa mengubah objek input asal. Parameter fungsi isihan adalah sama dengan kaedah isihan, termasuk kunci dan terbalik. Contohnya:

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_list = sorted(my_list)
print(new_list) # 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

new_list = sorted(my_list, reverse=True)
print(new_list) # 输出 [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

my_list = ["apple", "banana", "cherry", "orange"]
new_list = sorted(my_list, key=lambda x: len(x))
print(new_list) # 输出 ["apple", "cherry", "orange", "banana"]
Salin selepas log masuk

Nilai pulangan bagi fungsi yang diisih boleh menjadi senarai, tuple, rentetan, dll. Jenis hasil pulangan ditentukan berdasarkan jenis input.

3. Kaedah numpy.argsort
Kaedah numpy.argsort ialah kaedah dalam numpy, terutamanya digunakan untuk mengisih tatasusunan numpy. Kaedah argsort mengembalikan subskrip yang diisih. Parameter kaedah numpy.argsort juga adalah kunci dan terbalik. Contohnya:

import numpy as np

my_array = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5])
sort_index = np.argsort(my_array)
print(sort_index) # 输出 [1 3 6 0 9 2 4 8 7 5 10]

sort_index = np.argsort(-my_array)
print(sort_index) # 输出 [5 7 4 2 0 3 6 8 9 1 10]

my_array = np.array(["apple", "banana", "cherry", "orange"])
sort_index = np.argsort([len(x) for x in my_array])
print(sort_index) # 输出 [0 2 3 1]
Salin selepas log masuk

Dalam contoh di atas, contoh pertama mengisih tatasusunan numpy dalam tertib menaik dan mengembalikan subskrip yang diisih. Dalam contoh kedua, untuk mengisih dalam tertib menurun, anda perlu menyongsangkan tatasusunan. Contoh ketiga menyusun tatasusunan rentetan mengikut panjang.

Perlu diambil perhatian bahawa kaedah numpy.argsort mengembalikan senarai subskrip dan anda perlu menggunakan subskrip untuk mendapatkan hasil pengisihan.

Ringkasan:
Artikel ini terutamanya memperkenalkan kaedah isihan, diisih dan numpy.argsort dalam Python, yang boleh digunakan untuk mengisih senarai dan tatasusunan dalam Python. Kaedah isihan dan fungsi diisih boleh mengisih objek terbina dalam Python, dan kaedah numpy.argsort ialah kaedah dalam numpy, terutamanya digunakan untuk mengisih tatasusunan numpy. Kaedah ini boleh menggunakan parameter seperti kunci dan terbalik untuk mengawal tingkah laku pengisihan yang berbeza harus dipilih mengikut keperluan.

Atas ialah kandungan terperinci Pengisihan senarai: Penjelasan terperinci tentang kaedah pengisihan, disusun dan numpy.argsort Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan