溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python怎么按降序或升序排序

發(fā)布時(shí)間:2022-01-26 09:22:47 來源:億速云 閱讀:1464 作者:iii 欄目:開發(fā)技術(shù)

本文小編為大家詳細(xì)介紹“Python怎么按降序或升序排序”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Python怎么按降序或升序排序”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。

在 Python 中,您可以使用sorted()方法或sort()方法對(duì)數(shù)據(jù)進(jìn)行排序。

Python sort() 方法

此方法接受一個(gè)列表并對(duì)其進(jìn)行排序。此方法沒有返回值。

在這個(gè)例子中,我們有一個(gè)數(shù)字列表,我們可以使用該sort()方法按升序?qū)α斜磉M(jìn)行排序。

my_list = [67, 2, 999, 1, 15]

# this prints the unordered list
print("Unordered list: ", my_list)

# sorts the list in place
my_list.sort()

# this prints the ordered list
print("Ordered list: ", my_list)

Python怎么按降序或升序排序

如果列表已經(jīng)排序,那么它將在控制臺(tái)中返回 None 。

my_list = [6, 7, 8, 9, 10]

# this will return None because the list is already sorted
print(my_list.sort())

Python怎么按降序或升序排序

sort()方法可以接受兩個(gè)可選參數(shù),稱為keyreverse。

key  具有將在列表中的每個(gè)項(xiàng)目上調(diào)用的函數(shù)的值。

在這個(gè)例子中,我們可以使用len()函數(shù)作為key參數(shù)的值。key=len將告訴計(jì)算機(jī)按長(zhǎng)度從最小到最大對(duì)名稱列表進(jìn)行排序。

names = ["Jessica", "Ben", "Carl", "Jackie", "Wendy"]

print("Unsorted: ", names)
names.sort(key=len)
print("Sorted: ", names)

Python怎么按降序或升序排序

reverse為一個(gè)布爾值True 或者 False

在這個(gè)例子中,reverse=True將告訴計(jì)算機(jī)以逆字母順序?qū)α斜磉M(jìn)行排序。

names = ["Jessica", "Ben", "Carl", "Jackie", "Wendy"]

print("Unsorted: ", names)
names.sort(reverse=True)
print("Sorted: ", names)

Python怎么按降序或升序排序

Python sorted() 方法

此方法將從可迭代對(duì)象返回一個(gè)新的排序列表。可迭代對(duì)象的示例包括列表、字符串和元組。

sort()sorted()之間的一個(gè)主要區(qū)別是sorted()將返回一個(gè)新列表,同時(shí)sort()對(duì)列表進(jìn)行排序。

在這個(gè)例子中,我們有一個(gè)將按升序排序的數(shù)字列表。

sorted_numbers = sorted([77, 22, 9, -6, 4000])

print("Sorted in ascending order: ", sorted_numbers)

Python怎么按降序或升序排序

sorted()方法還接受可選keyreverse參數(shù)。

在這個(gè)例子中,我們有一個(gè)按降序排序的數(shù)字列表。reverse=True告訴計(jì)算機(jī)將列表從最大到最小反轉(zhuǎn)。

sorted_numbers = sorted([77, 22, 9, -6, 4000], reverse=True)

print("Sorted in descending order: ", sorted_numbers)

Python怎么按降序或升序排序

sorted()和之間的另一個(gè)主要區(qū)別sort()是該sorted()方法接受任何可迭代對(duì)象,而該sort()方法僅適用于列表。

在此示例中,我們使用split()方法將字符串分解為單個(gè)單詞。然后我們使用sorted()從最小到最大的長(zhǎng)度對(duì)單詞進(jìn)行排序。  

my_sentence = "Jessica found a dollar on the ground"

print("Original sentence: ", my_sentence)
print(sorted(my_sentence.split(), key=len))

Python怎么按降序或升序排序

我們還可以修改此示例并包含keyreverse參數(shù)。

這個(gè)修改后的示例現(xiàn)在將從最大到最小對(duì)列表進(jìn)行排序。

my_sentence = "Jessica found a dollar on the ground"

print("Original sentence: ", my_sentence)
print(sorted(my_sentence.split(), key=len, reverse=True))

Python怎么按降序或升序排序

我們也可以使用 sorted()上的方法tuples

在這個(gè)例子中,我們有一個(gè)tuples代表樂隊(duì)學(xué)生姓名、年齡和樂器的集合。

band_students = [
    ('Danny', 17, 'Trombone'),
    ('Mary', 14, 'Flute'),
    ('Josh', 15, 'Percussion')
]

我們可以使用該sorted()方法按學(xué)生的年齡對(duì)這些數(shù)據(jù)進(jìn)行排序。該key可以傳入一個(gè)lambda函數(shù),告訴計(jì)算機(jī)按年齡進(jìn)行升序排序。

一個(gè)lambda函數(shù)是一個(gè)沒有名稱的匿名函數(shù)。您可以使用lambda關(guān)鍵字定義這種類型的函數(shù)。

lambda student: student[1]

要訪問 a 中的值tuple,請(qǐng)使用括號(hào)表示法和要訪問的索引號(hào)。由于我們從零開始計(jì)數(shù),因此年齡值為[1]。

這是完整的示例。

band_students = [
    ('Danny', 17, 'Trombone'),
    ('Mary', 14, 'Flute'),
    ('Josh', 15, 'Percussion')
]

print(sorted(band_students, key=lambda student: student[1]))

Python怎么按降序或升序排序

我們可以修改此示例并改為按儀器對(duì)數(shù)據(jù)進(jìn)行排序。我們可以使用reverse的逆字母順序?qū)ぞ哌M(jìn)行排序。

band_students = [
    ('Danny', 17, 'Trombone'),
    ('Mary', 14, 'Flute'),
    ('Josh', 15, 'Percussion')
]

print(sorted(band_students, key=lambda student: student[2], reverse=True))

讀到這里,這篇“Python怎么按降序或升序排序”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI