Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mencapai Pengisihan Rentetan Semula Jadi dalam Python?

Bagaimanakah Saya Boleh Mencapai Pengisihan Rentetan Semula Jadi dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-12-26 11:17:09444semak imbas

How Can I Achieve Natural String Sorting in Python?

Isih Rentetan Asli dalam Python

Dalam Python, mengisih senarai rentetan mengikut abjad menggunakan fungsi sorted() lalai mungkin tidak menghasilkan yang diingini perintah "semula jadi". Ini kerana sorted() merawat rentetan sebagai aksara individu, mengakibatkan susunan yang tidak wajar.

Sebagai contoh, pertimbangkan senarai rentetan berikut:

['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']

Isih senarai ini dengan sorted() menghasilkan yang berikut:

['Elm11', 'Elm12', 'Elm2', 'elm0', 'elm1', 'elm10', 'elm13', 'elm9']

Ini bukan susunan pengisihan semula jadi, kerana nombor yang mengikuti huruf disusun mengikut abjad berbanding dengan dianggap sebagai sebahagian daripada nombor.

Untuk mencapai pengisihan rentetan semula jadi, anda boleh menggunakan perpustakaan natsort. Natsort menyediakan fungsi yang mengisih rentetan dengan cara yang lebih intuitif, mengekalkan susunan nombor semula jadi.

Anda boleh memasang natsort menggunakan pip:

pip install natsort

Untuk melakukan pengisihan semula jadi pada yang diberikan senarai, gunakan fungsi natsorted():

from natsort import natsorted

x = ['Elm11', 'Elm12', 'Elm2', 'elm0', 'elm1', 'elm10', 'elm13', 'elm9']
natsorted(x, key=lambda y: y.lower())

Ini akan menghasilkan pengisihan semula jadi yang diingini pesanan:

['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']

Fungsi natsort_keygen() juga boleh digunakan untuk mencipta kunci pengisihan:

from natsort import natsort_keygen

natsort_key = natsort_keygen(key=lambda y: y.lower())
list.sort(key=natsort_key)

Ini akan mengisih senarai dengan cara yang sama seperti natsorted().

Selain natsorted() dan natsort_keygen(), natsort juga menyediakan os_sorted() dan os_sort_keygen() fungsi. Fungsi ini membolehkan anda mengisih senarai mengikut gelagat pengisihan penjelajah fail sistem pengendalian anda, yang mungkin berbeza daripada gelagat lalai natsort.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Pengisihan Rentetan Semula Jadi dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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