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

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

DDD
發布: 2024-12-03 14:49:10
原創
319 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板