Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana Mengisih Nombor Rentetan Secara Berangka dalam Python?

Bagaimana Mengisih Nombor Rentetan Secara Berangka dalam Python?

Susan Sarandon
Lepaskan: 2024-12-08 00:07:11
asal
143 orang telah melayarinya

How to Sort String Numbers Numerically in Python?

Mengisih Nombor Rentetan Secara Numerik

Apabila berurusan dengan senarai rentetan yang mewakili nilai berangka, menyusunnya berdasarkan 数値 sebenar mungkin kelihatan seperti satu tugas yang mudah. Walau bagaimanapun, fungsi sort() lalai dalam Python boleh memberikan hasil yang tidak dijangka.

Isu ini timbul kerana fungsi sort() membandingkan rentetan secara leksikografi, bermakna ia mengisih rentetan mengikut abjad bukannya numerik. Untuk menyelesaikan masalah ini, adalah penting untuk menukar rentetan kepada integer sebenar sebelum melakukan isihan.

Pertimbangkan kod Python berikut:

list1 = ["1", "10", "3", "22", "23", "4", "2", "200"]
for item in list1:
    item = int(item)

list1.sort()
Salin selepas log masuk

Dalam kod ini, kami mula-mula menukar setiap rentetan dalam senaraikan kepada integer menggunakan fungsi int(). Walau bagaimanapun, kami kemudiannya mengabaikan untuk menggunakan nilai integer yang ditukar dalam jenis. Hasilnya, fungsi membandingkan rentetan asal dan menghasilkan output berikut:

['1', '10', '2', '200', '22', '23', '3', '4']
Salin selepas log masuk

Untuk mengisih senarai secara berangka, kita perlu memasukkan integer yang ditukar ke dalam isihan, seperti yang ditunjukkan di bawah:

list1 = [int(x) for x in list1]
list1.sort()
Salin selepas log masuk

Kali ini, fungsi akan membandingkan nilai integer dengan betul dan menghasilkan yang dikehendaki output:

['1', '2', '3', '4', '10', '22', '23', '200']
Salin selepas log masuk
Salin selepas log masuk

Sebagai alternatif, jika anda perlu mengekalkan rentetan daripada menukarnya kepada integer, anda boleh menggunakan fungsi utama semasa mengisih. Fungsi sort() membolehkan anda menentukan fungsi utama yang digunakan pada setiap elemen sebelum ia dibandingkan. Ini membolehkan anda menyesuaikan kriteria perbandingan.

Sebagai contoh, untuk mengisih senarai rentetan secara berangka menggunakan fungsi kekunci, anda boleh menggunakan kod berikut:

list1 = ["1", "10", "3", "22", "23", "4", "2", "200"]
list1.sort(key=int)
Salin selepas log masuk

Dalam kes ini, fungsi utama int() digunakan pada setiap rentetan sebelum perbandingan. Fungsi menukar rentetan kepada integer, dan fungsi sort() membandingkan nilai integer yang terhasil, menghasilkan output yang sama yang diingini:

['1', '2', '3', '4', '10', '22', '23', '200']
Salin selepas log masuk
Salin selepas log masuk

Dengan memahami cara fungsi sort() berfungsi dalam Python dan menggunakan fungsi utama apabila perlu, anda boleh mengisih senarai nombor rentetan secara berangka dengan berkesan, tanpa mengira format asalnya.

Atas ialah kandungan terperinci Bagaimana Mengisih Nombor Rentetan Secara Berangka dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan