首頁 >後端開發 >Python教學 >如何正確排序包含數字的字串?

如何正確排序包含數字的字串?

DDD
DDD原創
2024-12-03 14:49:10405瀏覽

How to Sort Strings Containing Numbers Correctly?

如何正確對包含數字的字串進行排序

對包含數字的字串進行排序可能具有挑戰性。預設的 sort() 方法將每個字元視為自己的實體,從而導致排序不正確。為了正確地對這些字串進行排序,需要更複雜的方法。

一種有效的方法是人工排序,它利用正規表示式從字串中提取數字元件。此技術允許獨立於字母部分對數字進行排序。

要實現人工排序,請依照下列步驟操作:

  1. 匯入 re 模組。
  2. 定義一個函數 atoi(text) 將字串轉換為整數,如果不是字串則將其保留為字串number。
  3. 定義一個函數natural_keys(text),使用正規表示式(d)分割字串。
  4. 使用sort()的key參數對清單進行排序,傳入natural_keys

範例:

import re

def atoi(text):
    return int(text) if text.isdigit() else text

def natural_keys(text):
    return [ atoi(c) for c in re.split(r'(\d+)', text) ]

alist = [
    "something1",
    "something12",
    "something17",
    "something2",
    "something25",
    "something29"]

alist.sort(key=natural_keys)
print(alist)

輸出:

['something1', 'something2', 'something12', 'something17', 'something25', 'something29']

輸出:

輸出:輸出:和數字部分的字串。

以上是如何正確排序包含數字的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn