Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Isih Rentetan yang Mengandungi Nombor Terbenam dan Terapung Secara Semulajadi?

Bagaimanakah Saya Boleh Isih Rentetan yang Mengandungi Nombor Terbenam dan Terapung Secara Semulajadi?

Susan Sarandon
Lepaskan: 2024-11-30 06:59:14
asal
537 orang telah melayarinya

How Can I Sort Strings Containing Embedded Numbers and Floats Naturally?

Mengisih Rentetan dengan Nombor Terbenam

Mengisih senarai rentetan yang mengandungi nombor boleh menimbulkan cabaran kerana jenis data yang berbeza-beza. Pendekatan berikut menyediakan penyelesaian untuk mengisih rentetan ini dengan betul.

Untuk mempraproses rentetan, kami mentakrifkan fungsi pembantu, atoi(), yang menukar rentetan kepada integer jika ia mewakili nombor; jika tidak, ia mengembalikan rentetan asal. Ini membantu dalam mengekstrak komponen berangka daripada rentetan.

Seterusnya, kami memperkenalkan fungsi natural_keys(), yang memisahkan rentetan menggunakan ungkapan biasa dan menggunakan fungsi atoi() pada setiap komponen. Ini mengubah senarai menjadi bentuk boleh diisih.

Menggunakan kaedah sort(), kami menggunakan fungsi natural_keys() sebagai hujah utama. Ini menyusun senarai dalam susunan manusia, mengambil kira komponen abjad dan berangka.

Contoh:

Pertimbangkan senarai rentetan berikut:

["something1", "something12", "something17", "something2", "something25", "something29"]
Salin selepas log masuk

Isih senarai ini dengan fungsi natural_keys(). menghasilkan:

['something1', 'something2', 'something12', 'something17', 'something25', 'something29']
Salin selepas log masuk

Isih Teks dengan Terapung:

Untuk melanjutkan fungsi untuk memasukkan terapung, corak ungkapan biasa dalam natural_keys() boleh diubah suai untuk memadankan terapung -nombor titik.

return [ atof(c) for c in re.split(r'[+-]?([0-9]+(?:[.][0-9]*)?|[.][0-9]+)', text) ]
Salin selepas log masuk

di mana atof() ialah fungsi pembantu yang cuba menukar rentetan kepada terapung.

Ini membolehkan pengisihan rentetan yang mengandungi komponen abjad dan titik terapung.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Rentetan yang Mengandungi Nombor Terbenam dan Terapung Secara Semulajadi?. 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