Isih Nombor Senarai Rentetan dalam Python
Percubaan untuk mengisih senarai rentetan secara berangka dalam Python menggunakan fungsi sort() boleh mengakibatkan hasil yang tidak dijangka. Algoritma pengisihan lalai untuk rentetan dalam Python selalunya mengikut abjad dan bukannya berangka.
Untuk mengisih senarai rentetan secara berangka, rentetan mesti ditukar kepada integer terlebih dahulu. Walau bagaimanapun, coretan kod yang disediakan cuba menukar rentetan kepada integer tetapi tidak menggunakan nilai yang ditukar untuk mengisih.
Pendekatan yang betul ialah menukar rentetan kepada integer menggunakan pemahaman senarai:
list1 = ["1", "10", "3", "22", "23", "4", "2", "200"] list1 = [int(x) for x in list1]
Setelah rentetan ditukar kepada integer, senarai boleh diisih menggunakan sort() fungsi:
list1.sort()
Ini akan menyebabkan senarai diisih dalam susunan berangka menaik.
Sebagai alternatif, jika perlu mengekalkan elemen sebagai rentetan, fungsi utama boleh digunakan untuk nyatakan kriteria perbandingan. Fungsi utama dipanggil pada setiap elemen sebelum ia dibandingkan, dan nilai pulangan digunakan untuk perbandingan dan bukannya elemen itu sendiri:
list1.sort(key=int)
Ini juga akan mengisih senarai secara berangka, tetapi elemen akan kekal sebagai rentetan.
Atas ialah kandungan terperinci Bagaimana untuk Menyusun Senarai Rentetan secara Numerik dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!