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
Lepaskan: 2024-12-26 11:17:09
asal
451 orang telah melayarinya

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']
Salin selepas log masuk
Salin selepas log masuk

Isih senarai ini dengan sorted() menghasilkan yang berikut:

['Elm11', 'Elm12', 'Elm2', 'elm0', 'elm1', 'elm10', 'elm13', 'elm9']
Salin selepas log masuk

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
Salin selepas log masuk

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())
Salin selepas log masuk

Ini akan menghasilkan pengisihan semula jadi yang diingini pesanan:

['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
Salin selepas log masuk
Salin selepas log masuk

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)
Salin selepas log masuk

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!

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