在 Python 中以降序對列表進行排序

Rayven Esplanada 2022年12月26日
在 Python 中以降序對列表進行排序

本教程演示瞭如何在 Python 中按降序對列表進行排序。

在 Python 中使用 sort() 方法以降序對列表進行排序

Python 具有稱為 sort() 的內建函式,預設情況下,該函式以升序排列列表。此方法僅對給定列表的內容進行排序。它沒有任何必需的引數,但具有可選引數:

  • key - 確定在多維陣列內對哪個索引或位置進行排序。
  • reverse - 如果為 True,則列表以降序排列。

讓我們看看該方法如何對有引數和無引數的列表進行排序:

  • 無引數:
colors = ["pink", "blue", "black", "white"]
colors.sort()

print(colors)

輸出:

['black', 'blue', 'pink', 'white']

該列表根據字串的 ASCII 值對字串進行排序,這些字串是單個字元的整數對應部分。如果比較中的兩個字串都具有相同的 ASCII 值,則它將繼續比較兩個字串的下一個字元,直到沒有可比較的內容為止。

  • 使用 reverse 引數:
colors = ["pink", "blue", "black", "white"]
colors.sort(reverse=True)
print(colors)

輸出:

['white', 'pink', 'blue', 'black']

reverse 引數設定為 True 可以對列表進行降序排列。

排序整數和浮點數是根據數值大小進行排序。讓我們用另一個例子試試,這次是按降序對整數和小數進行排序。

numbers = [55, 6, -0.05, 0.07, 2.5, -7, 2.99, 101, 0.78]
numbers.sort(reverse=True)

print(numbers)

輸出:

[101, 55, 6, 2.99, 2.5, 0.78, 0.07, -0.05, -7]

從輸出結果來看,使用 sort() 函式對數字進行排序時注意到了小數和負數。

這種型別的排序也適用於格式為 YYYY-MM-DD HH:MM:SS 的日期。讓我們以時間戳列表為例來證明這一點。

timestamps = [
    "2021-04-15 09:08:30",
    "2021-04-14 08:09:38",
    "2021-04-18 12:10:52",
    "2021-04-21 23:39:22",
    "2021-04-13 14:40:22",
    "2021-04-14 13:59:46",
    "2021-04-15 19:22:37",
    "2021-04-18 07:00:58",
    "2021-04-17 04:01:50",
    "2021-04-22 01:17:13",
    "2021-04-25 24:22:13",
    "2021-04-14 25:36:38",
]

timestamps.sort(reverse=True)

print(timestamps)

輸出:

['2021-04-25 24:22:13', '2021-04-22 01:17:13', '2021-04-21 23:39:22', '2021-04-18 12:10:52', '2021-04-18 07:00:58', '2021-04-17 04:01:50', '2021-04-15 19:22:37', '2021-04-15 09:08:30', '2021-04-14 25:36:38', '2021-04-14 13:59:46', '2021-04-14 08:09:38', '2021-04-13 14:40:22']

觀察到輸出已成功按降序排序,從而確認時間戳也可以通過將 sort() 函式與 reverse 引數一起使用進行正確排序。

總而言之,使用內建的 sort() 函式並將 reverse 引數設定為 True 可以按降序對 Python 列表進行排序。

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

相關文章 - Python List