Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Perpustakaan `natsort` Python Mencapai Pengisihan Semula Jadi?

Bagaimanakah Perpustakaan `natsort` Python Mencapai Pengisihan Semula Jadi?

Patricia Arquette
Patricia Arquetteasal
2024-12-28 18:09:10766semak imbas

How Does Python's `natsort` Library Achieve Natural Sorting?

Isih Asli dalam Python

Dalam Python, fungsi sorted() mengisih rentetan dalam susunan ASCIIbetical. Walau bagaimanapun, untuk senario di mana jenis semula jadi diingini, perpustakaan yang dipanggil natsort datang untuk menyelamatkan.

Isih Semulajadi dengan natsort

natsort menyediakan kedua-dua fungsi pengisihan dan kunci pengisihan. Untuk fungsi pengisihan, anda boleh menggunakan natsorted():

from natsort import natsorted

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

Ini akan mengisih senarai mengikut susunan semula jadi ('elm0', 'elm1', dsb.).

Isih Kunci dengan natsort_keygen

Jika kunci pengisihan lebih sesuai, anda boleh menggunakan natsort_keygen():

from natsort import natsort_keygen

l = ['Elm11', 'Elm12', 'Elm2', 'elm0', 'elm1', 'elm10', 'elm13', 'elm9']
sort_key = natsort_keygen(key=lambda y: y.lower())
l.sort(key=sort_key)

Ini akan mengisih senarai dalam susunan semula jadi yang sama.

Kes Khas: Isih seperti Windows Explorer

natsort juga menyediakan fungsi os_sorted untuk susun dalam susunan yang sama seperti penyemak imbas sistem fail pada sistem pengendalian tertentu:

from natsort import os_sorted

paths = ['path/to/file1', 'path/to/file10', 'path/to/file2']
os_sorted(paths)

Ini akan mengisih laluan mengikut peneroka fail sistem pengendalian.

Atas ialah kandungan terperinci Bagaimanakah Perpustakaan `natsort` Python Mencapai Pengisihan Semula Jadi?. 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