Cara Mengisih Rentetan dengan Nombor Dengan Betul
Mengisih rentetan yang mengandungi nombor boleh mencabar. Kaedah sort() lalai menganggap setiap aksara sebagai entitinya sendiri, mengakibatkan susunan yang salah. Untuk mengisih rentetan sedemikian dengan betul, pendekatan yang lebih canggih diperlukan.
Satu kaedah yang berkesan ialah pengisihan manusia, yang menggunakan ungkapan biasa untuk mengekstrak komponen berangka daripada rentetan. Teknik ini membolehkan nombor diisih secara berasingan daripada bahagian abjad.
Untuk melaksanakan pengisihan manusia, ikut langkah berikut:
Contoh:
import re def atoi(text): return int(text) if text.isdigit() else text def natural_keys(text): return [ atoi(c) for c in re.split(r'(\d+)', text) ] alist = [ "something1", "something12", "something17", "something2", "something25", "something29"] alist.sort(key=natural_keys) print(alist)
Output:
['something1', 'something2', 'something12', 'something17', 'something25', 'something29']
Pendekatan ini menyusun dengan tepat rentetan dengan mempertimbangkan kedua-dua bahagian abjad dan berangka.
Atas ialah kandungan terperinci Bagaimana Mengisih Rentetan yang Mengandungi Nombor dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!