Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengisih Senarai Nombor Rentetan Secara Numerik dalam Python?

Bagaimana untuk Mengisih Senarai Nombor Rentetan Secara Numerik dalam Python?

Linda Hamilton
Lepaskan: 2024-12-08 17:57:12
asal
671 orang telah melayarinya

How to Sort a List of String Numbers Numerically in Python?

Mengisih Senarai Nombor Rentetan Secara Numerik

Walaupun ringkasnya, fungsi sort() Python boleh mengelirukan apabila berurusan dengan rentetan yang mewakili nombor . Seperti yang ditunjukkan dalam coretan kod di bawah, cubaan menukar rentetan ini kepada integer dan kemudian mengisihnya menghasilkan hasil yang salah:

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

list1.sort()
print(list1)
Salin selepas log masuk

Output:

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

Untuk membetulkan isu ini, anda mesti sebenarnya menukar rentetan anda kepada integer. Berikut ialah kod yang diperbetulkan:

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

Ini menghasilkan tertib berangka yang betul:

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

Sebagai alternatif, jika anda perlu mengekalkan elemen sebagai rentetan, anda boleh menggunakan parameter utama mengikut urutan (). Parameter ini menerima fungsi yang dipanggil pada setiap elemen sebelum ia dibandingkan. Nilai pulangan fungsi utama digunakan untuk perbandingan dan bukannya elemen itu sendiri.

Sebagai contoh:

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

atau

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

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

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