Python sort

如何使用带有实际示例的sort函数。在Python中,我们可以使用此函数对列表、字典、元组、集合和字符串等对象进行反向排序,这是最常被问到的问题之一。

在Python编程中,我们有组织对象的函数,它们是sort(仅适用于列表项)和sorted(用于其他对象)。这些函数的语法是

# List Items using Functions in Reverse
list_Name.sort(reverse = True, key = Function_Name) # 1x

# Reverse using Functions
sorted(Object_Name, reverse = True, key = Function_Name) # 2

从上面的sort语法来看,如果你观察语句1和2

  1. reverse和key参数及其值都是可选的。因此,你可以选择使用其中一个、两者都使用或都不使用。在这里,Python的sort reverse参数用于按反向或降序排列元素。接下来,Function_name用于为其传递名称。
  2. 此方法接受Object_Name作为必需参数。在这里,reverse和key参数及其值也是可选的。

在这里,FunctionName可以是任何用户定义的函数。或者,您可以使用Python内置函数,如lenminmax等。

Python sort List Items 示例

如何使用此列表函数按升序和降序对列表项进行排序?

此列表函数对列表项进行升序排序。在此示例中,我们首先声明了一个整数列表。接下来,我们使用此方法按升序组织整数列表和字符串列表。在这里,此方法对字符串列表使用字母顺序。

提示:请参考List method文章,了解此方法在List项上的用法。

listexample = [13, 98, 45, 125, 6, 22, 9, 78]
print(listexample)

listexample.sort()
print( listexample)

liststring = ['orange', 'banana', 'kiwi', 'grape', 'blackberry']
print(liststring)

liststring.sort()
print(liststring)

[13, 98, 45, 125, 6, 22, 9, 78]
[6, 9, 13, 22, 45, 78, 98, 125]

['orange', 'banana', 'kiwi', 'grape', 'blackberry']
['banana', 'blackberry', 'grape', 'kiwi', 'orange']

Python Sort String List in Reverse(Python反向排序字符串列表)

sort函数包含一个名为reverse = True的参数。它允许我们将列表项按降序排列。在这里,我们使用reverse = true。这意味着字符串列表项按降序排序。

liststring = ['orange', 'blackberry', 'kiwi', 'grape', 'banana']
print("\nOriginal List String = ", liststring)

liststring.sort(reverse = True)
print("Result String List = ", liststring)
Original List String =  ['orange', 'blackberry', 'kiwi', 'grape', 'banana']
Result String List =  ['orange', 'kiwi', 'grape', 'blackberry', 'banana']

Python list sort with key argument Example(Python按键排序列表示例)

此列表方法还有另一个名为key的参数。此键接受任何函数,该函数决定排序因子。

在此示例中,我们创建了一个secondValue函数。它返回嵌套列表中的第二个参数。接下来,我们使用此方法作为键值。这意味着列表示例是根据嵌套列表中的第二个值排列的。

在接下来的代码行中,我们使用了reverse和key参数。这意味着列表项根据嵌套列表中的第二个值按升序和降序排序。

def secondValue(value):
    return value[1]

listexample = [[17, 222], [222, 13], [14, 151], [99, 77]]
print("\n Original List = ", listexample)

# List in Ascending using Second item
listexample.sort(key = secondValue)
print("Asc using Second = ", listexample)

# List in Descending using Second item
listexample.sort(reverse = True, key = secondValue)
print("Descending List = ", listexample)

 Original List =  [[17, 222], [222, 13], [14, 151], [99, 77]]

Asc using Second =  [[222, 13], [99, 77], [14, 151], [17, 222]]

Descending List =  [[17, 222], [14, 151], [99, 77], [222, 13]]

Sort Tuple Examples(元组排序示例)

以下代码显示了如何按升序和降序对元组项进行排序。以下代码按升序排列整数元组中的元素。

Python Sort Function Example

Sort Tuple Reverse Example 2(元组反向排序示例2)

在此,我们首先声明了一个字符串元组。接下来,我们使用该函数对其进行升序排序。在这里,它对字符串元组使用字母顺序。

Python的sorted函数使用其名为reverse的参数来按降序排列元组项。以下代码按降序排列字符串元组元素。

tupleexample = ('orange', 'banana', 'kiwi', 'grape', 'blackberry')
print("\n Original Tuple = ", tupleexample)

# Tuple
descExm = sorted(tupleexample, reverse = True)
print("Descending Tuple = ", descExm)

Original Tuple =  ('orange', 'banana', 'kiwi', 'grape', 'blackberry')
Descending Tuple =  ['orange', 'kiwi', 'grape', 'blackberry', 'banana']

此元组排序函数还有另一个名为key的参数。此key参数接受任何方法,并决定排序因子。在此示例中,我们创建了一个函数来查找字符串的长度。

我们将此length方法用作键值。这意味着元组项按长度升序排序。接下来,我们使用reverse以及此key参数。它根据其长度按降序排列元组项。

def length(item):
    return len(item)

tupleexample = ('orange', 'kiwi', 'grape', 'blackberry')
print("\n Original Tuple = ", tupleexample)

ascEx = sorted(tupleexample, key = length)
print("Tuple by Length = ", ascEx)

# Tuple
descEx = sorted(tupleexample, reverse = True, key = length)
print("Descending Tuple by Length = ", descEx)

tuple items output(元组项输出)


 Original Tuple =  ('orange', 'kiwi', 'grape', 'blackberry')
Tuple by Length =  ['kiwi', 'grape', 'orange', 'blackberry']
Descending Tuple by Length =  ['blackberry', 'orange', 'grape', 'kiwi']

Tuple sorted with reverse and key arguments(使用reverse和key参数排序的元组)

它允许您将任何内置函数用作sort key参数。此元组示例与上述相同。但是,我们使用len作为key参数。这意味着用户定义的长度替换了len方法。

tupleexm1 = ('orange', 'kiwi', 'grape', 'blackberry')
print("\n Original Tuple = ", tupleexm1)

# Tuple
descExm = sorted(tupleexm1, reverse = True, key = len)
print("Descending Tuple by Length = ", descExm)

 Original Tuple =  ('orange', 'kiwi', 'grape', 'blackberry')
Descending Tuple by Length =  ['blackberry', 'orange', 'grape', 'kiwi']

Python Sorted Set Examples(Python排序集合示例)

以下示例显示了如何按升序和降序对set项进行排序。此函数是您可以用来按升序和降序排序集合项的函数。

在此集合示例中,我们首先声明了一个包含正值和负值的集合。接下来,我们使用此方法按升序排列它们。最后,我们使用集合函数和reverse参数按降序排列集合。

setExample = {22, -15, 17, 0, 12, -4, 7, 10}
print("\n Original Set = ", setExample)

print("\nAscending Set = ", sorted(setExample))

descSet = sorted(setExample, reverse = True)
print("Descending = ", descSet)

 Original Set =  {0, 7, 10, 12, -15, 17, 22, -4}

Ascending Set =  [-15, -4, 0, 7, 10, 12, 17, 22]
Descending =  [22, 17, 12, 10, 7, 0, -4, -15]

Python Sorted Set in Reverse Example(Python反向排序集合示例)

在此示例中,我们将此函数用于字符串值集合 — 以下代码按反向或降序对字符串集合进行排序。

setStringExample = {'mango', 'kiwi', 'apple', 'orange', 'banana'}
print("\n Original Set = ", setStringExample)

descStrSet = sorted(setStringExample, reverse = True)
print("Set in Descending = ", descStrSet)

 Original Set =  {'kiwi', 'mango', 'apple', 'banana', 'orange'}

Set in Descending =  ['orange', 'mango', 'kiwi', 'banana', 'apple']

如何在集合排序中使用reverse和key参数?

此示例显示了如何对集合项使用key参数。在这里,我们声明了一个查找字符串长度的函数。接下来,我们将此Python sort函数用作集合项的键值。这意味着集合元素按长度升序排序。

在下一行,我们也使用了reverse参数。它根据长度按降序对集合元素进行排序。

def stringlength(item):
    return len(item)

setCountryExample = {'USA', 'UK', 'Canada', 'India', 'Australia'}
print("\n Original = ", setCountryExample)

ascCountrySet = sorted(setCountryExample, key = stringlength)
print("\nString Set = ", ascCountrySet)

descCountrySet = sorted(setCountryExample, reverse = True, key = stringlength)
print("Desc = ", descCountrySet)

 Original =  {'UK', 'Australia', 'Canada', 'India', 'USA'}

String Set =  ['UK', 'USA', 'India', 'Canada', 'Australia']
Desc =  ['Australia', 'Canada', 'India', 'USA', 'UK']

此集合示例与上述示例相同。我们只是用内置的标准len函数替换了用户定义的函数。

setCountryExample = {'USA', 'UK', 'Canada', 'India', 'Australia'}
print("\n Original = ", setCountryExample)

descCountrySet = sorted(setCountryExample, reverse = True, key = len)
print("Desc = ", descCountrySet)

 Original =  {'Australia', 'India', 'UK', 'Canada', 'USA'}

Desc =  ['Australia', 'Canada', 'India', 'USA', 'UK']

Python Sort String Examples(Python排序字符串示例)

本节将向您展示如何按升序和降序对字符串进行排序。

您不能直接在字符串项上使用此功能。要实现这一点,我们首先对其进行升序排序。它将字符串拆分为单个字符。接下来,我们使用join方法将单个字符连接起来。

首先,我们声明了一个字符串。接下来,我们使用此方法和join方法按升序对其进行排序。在这里,此方法按字母顺序排列字符串中的字符。接下来,我们使用reverse= true参数按降序排列字符串。

stringExample = 'tutorialgateway'
print("\n Original String = ", stringExample)

newString = ''.join(sorted(stringExample))
print("\n String in Ascending = ", newString)

descString = ''.join(sorted(stringExample, reverse = True))
print("\n String in Descending = ", descString)

 Original String =  tutorialgateway

 String in Ascending =  aaaegilortttuwy

 String in Descending =  ywutttroligeaaa

Python Sort Dictionary Examples(Python排序字典示例)

以下示例显示了如何按升序和降序对字典项进行排序。我们可以对字典项使用相同的函数按升序和降序排列它们。在这里,我们使用keysvaluesitems函数从字典中提取键、值和项。

在此示例中,我们声明了一个字典。接下来,我们使用此方法按升序对字典键进行排序。第二,我们对字典值进行操作以按升序排列字典值。第三,我们使用它按字典键对完整的字典项进行排序。

dictIntExample = {1: 10, 4: 70, 3: 30, 5: 50, 2: 200 }
print("\nOriginal Dictionary = ", dictIntExample)

ascKDictionary = sorted(dictIntExample.keys())
print("\nDictionary Keys in Ascending = ", ascKDictionary)

ascVDictionary = sorted(dictIntExample.values())
print("Dictionary Vals in Ascending = ", ascVDictionary)

ascDictionary = sorted(dictIntExample.items())
print("Dictionary in Ascending= ", ascDictionary)

Original Dictionary =  {1: 10, 4: 70, 3: 30, 5: 50, 2: 200}

Dictionary Keys in Ascending =  [1, 2, 3, 4, 5]
Dictionary Vals in Ascending =  [10, 30, 50, 70, 200]
Dictionary in Ascending=  [(1, 10), (2, 200), (3, 30), (4, 70), (5, 50)]

如果在上述示例中添加reverse参数,则字典的键、值和项将按反向或降序排列。

按反向排序字典的键和值

在此Dictionary示例中,我们使用了reverse参数并将值赋为True。以下代码按降序对字典键、值和项执行操作。

dictStrExm = {3: 'cherry', 10: 'banana' , 5: 'orange', 9: 'kiwi'}
print("\nOriginal = ",dictStrExm)

descKDictionary = sorted(dictStrExm.keys(), reverse = True)
print("\nKeys in Desc = ", descKDictionary)

descVDictionary = sorted(dictStrExm.values(), reverse = True)
print("Values in Desc = ", descVDictionary)

descDictionary = sorted(dictStrExm.items(), reverse = True)
print("Dictionary in Desc= ", descDictionary)

Original =  {3: 'cherry', 10: 'banana', 5: 'orange', 9: 'kiwi'}

Keys in Desc =  [10, 9, 5, 3]
Values in Desc =  ['orange', 'kiwi', 'cherry', 'banana']
Dictionary in Desc=  [(10, 'banana'), (9, 'kiwi'), (5, 'orange'), (3, 'cherry')]