Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengisih Rentetan dalam Python: Di Tempat, Salinan, Sedar Tempatan dan Tempat Tersuai?

Bagaimana untuk Mengisih Rentetan dalam Python: Di Tempat, Salinan, Sedar Tempatan dan Tempat Tersuai?

DDD
DDDasal
2024-11-10 17:26:031069semak imbas

How to Sort Strings in Python: In-Place,  Copies, Locale-Aware, and Custom Locales?

Isih Senarai Rentetan dalam Python

Salah satu tugas biasa dalam pengaturcaraan ialah menyusun senarai rentetan. Dalam Python, terdapat beberapa cara untuk mencapai ini, masing-masing mempunyai kelebihan dan kaveat tersendiri.

Isih Di Tempat

Pendekatan paling mudah ialah menggunakan isihan( ) kaedah secara langsung dalam senarai. Ini mengubah suai senarai asal, mengisih unsurnya mengikut abjad di tempatnya. Walau bagaimanapun, pendekatan ini tidak sesuai jika anda ingin mengekalkan susunan asal senarai.

mylist = ["b", "C", "A"]
mylist.sort()

Mencipta Salinan Isih

Untuk mendapatkan salinan yang diisih bagi senarai tanpa mengubah suai yang asal, gunakan fungsi sorted():

for x in sorted(mylist):
    print(x)

Locale-Aware Pengisihan

Kaedah pengisihan yang diterangkan di atas melaksanakan pengisihan yang sensitif huruf besar dan tidak mengetahui lokasi. Untuk mengambil kira peraturan khusus setempat, anda boleh menggunakan parameter utama fungsi sort() atau sorted(), bersama-sama dengan fungsi pembantu cmp_to_key() daripada modul functools:

sorted(mylist, key=cmp_to_key(locale.strcoll))

Ini akan mengisih senarai mengikut tetapan tempat semasa.

Tersuai Tempatan

Akhir sekali, jika anda perlu menentukan tempat tersuai untuk mengisih, gunakan fungsi setlocale() daripada modul setempat:

import locale
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
sorted((u'Ab', u'ad', u'aa'), key=cmp_to_key(locale.strcoll))

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Rentetan dalam Python: Di Tempat, Salinan, Sedar Tempatan dan Tempat Tersuai?. 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