按數字對字串數字進行排序
處理表示數值的字串清單時,根據實際數字對它們進行排序可能看起來像一項簡單的任務。然而,Python 中預設的 sort() 函數可能會提供意想不到的結果。
出現問題的原因是 sort() 函數按字典順序比較字串,這意味著它按字母順序而不是數字順序對字串進行排序。要解決這個問題,在執行排序之前將字串轉換為實際整數至關重要。
考慮以下 Python 程式碼:
list1 = ["1", "10", "3", "22", "23", "4", "2", "200"] for item in list1: item = int(item) list1.sort()
在此程式碼中,我們首先將使用 int() 函數將列表轉換為整數。然而,我們隨後忽略在排序中使用轉換後的整數值。結果,函數比較原始字串並產生以下輸出:
['1', '10', '2', '200', '22', '23', '3', '4']
要對列表進行數字排序,我們需要將轉換後的整數合併到排序中,如下所示:
list1 = [int(x) for x in list1] list1.sort()
這次,函數將正確比較整數值並產生所需的輸出:
['1', '2', '3', '4', '10', '22', '23', '200']
或者,如果您需要保留字串而不是將它們轉換為整數,您可以在排序時使用鍵函數。 sort() 函數可讓您指定在比較之前應用於每個元素的鍵函數。這使您能夠自訂比較條件。
例如,要使用鍵函數對字串清單進行數字排序,您可以使用以下程式碼:
list1 = ["1", "10", "3", "22", "23", "4", "2", "200"] list1.sort(key=int)
在這種情況下,在比較之前,關鍵函數int()應用於每個字串。此函數將字串轉換為整數,sort() 函數比較產生的整數值,產生相同的所需輸出:
['1', '2', '3', '4', '10', '22', '23', '200']
透過了解sort() 函數在Python 中的工作原理並利用關鍵函數必要時,您可以有效地對字串數字清單進行數字排序,無論其原始格式為何。
以上是如何在Python中對字串數字進行數字排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!