Python List sort 函数

如何使用此 List sort 函数并提供实际示例?此 Python List 函数用于按升序对给定元素进行排序,其语法如下:

# Ascending
liName.sort()

# Descending or Reverse
liName.sort(reverse = True)

# Using Built-in or User defined Function
liName.sort(key = Function_Name)

在此列表排序函数语法中,FunctionName 可以是任何用户定义的函数。或者,您可以在其中使用任何内置函数,例如 len、min、max 等。

Python List sort 方法

以下示例显示了如何按升序和降序对整数列表项进行排序。

在此示例中,我们声明了一个整数列表,该函数将给定列表按升序排序。

a = [10, 190, 120, 180, 120, 105]

a.sort()

print(a)
10, 105, 120, 120, 180, 190]

它有一个名为 reverse = True 的参数,允许我们按降序组织项目。以下代码按降序或反向顺序对整数元素进行排序。

提示:请参阅 Python 中的 List 文章和 methods 文章,以了解有关它们的全部信息。同时,请参阅 lenminmax

lexm = [13, 98, 125, 191, 22, 9, 91, 78, 242]
print("\n Original = ", exm)

exm.sort()
print("Ascending = ", exm)

exm2 = [13, 98, 125, 191, 22, 9, 91, 78, 242]
print("\n Original exm2 = ", exm2)

exm2.sort(reverse = True)
print("Descending = ", exm2)

 Original =  [13, 98, 125, 191, 22, 9, 91, 78, 242]
Ascending =  [9, 13, 22, 78, 91, 98, 125, 191, 242]

 Original exm2 =  [13, 98, 125, 191, 22, 9, 91, 78, 242]
Descending =  [242, 191, 125, 98, 91, 78, 22, 13, 9]

Python sort 字符串列表示例

本节展示了如何按升序和降序对字符串列表项进行排序。在此示例中,我们首先声明了字符串。接下来,我们使用列表函数按升序对它们进行排序。这里,它使用字母顺序排列字符串项。

Fruit = ['Orange', 'Banana', 'Watermelon', 'Kiwi', 'Grape', 'Blackberry']

Fruit.sort()

print(Fruit)
['Banana', 'Blackberry', 'Grape', 'Kiwi', 'Orange', 'Watermelon']

此示例方法按升序对字符串和整数项进行排序。

Fruits = ['Apple', 'Orange', 'Banana', 'Kiwi', 'Grape', 'Blackberry']
numbers = [9, 4, -5, 0, 22, -1, 2, 14]

print(Fruits)
print(numbers)

print("\n---Result---")
Fruits.sort()
print(Fruits)

numbers.sort()
print(numbers)
['Apple', 'Orange', 'Banana', 'Kiwi', 'Grape', 'Blackberry']
[9, 4, -5, 0, 22, -1, 2, 14]

---Result---
['Apple', 'Banana', 'Blackberry', 'Grape', 'Kiwi', 'Orange']
[-5, -1, 0, 2, 4, 9, 14, 22]

使用 reverse 按降序排序列表

在此示例中,我们在函数内使用了 reverse = True 选项。这意味着此示例返回的顺序与上一个示例相反。

fruitli = ['orange', 'banana', 'apple', 'kiwi', 'grape']
print(fruitli)

fruitli.sort()
print("\nAscending = ", fruitli)

# Descending Order
fruitli.sort(reverse = True)
print(fruitli)

降序元素输出


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

Ascending =  ['apple', 'banana', 'grape', 'kiwi', 'orange']
Descending =  ['orange', 'kiwi', 'grape', 'banana', 'apple']

使用 key 参数和自定义函数对 Python 列表进行排序

在列表项上使用此方法还有一个名为 key 的参数。它接受任何内置方法来确定排序因子。在此示例中,我们创建了一个名为 length 的用户定义函数。它查找给定字符串的长度。

接下来,我们将此函数用作键值。这意味着水果是根据它们的长度按升序排列的。

在下一行中,我们将 reverse 参数与此 key 参数一起使用。它会按每个单词的长度按降序排列水果。

def length(str):
    return len(str)

fruits = ['apple', 'oranges', 'blackberry', 'kiwi', 'cherry']
print("\nOriginal = ", fruits)

fruits.sort(key = length)
print("Asc  = ", fruits)

fruits.sort(reverse = True, key = length)
print("Desc = ", fruits)

Original =  ['apple', 'oranges', 'blackberry', 'kiwi', 'cherry']
Asc  =  ['kiwi', 'apple', 'cherry', 'oranges', 'blackberry']
Desc =  ['blackberry', 'oranges', 'cherry', 'apple', 'kiwi']

要使用 key 参数,您不必创建自定义函数。它允许您使用任何内置函数。

key 参数和 len 函数

此 Python 列表排序方法示例与上面的示例相同。但是,我们正在使用内置的常用 len 函数。这意味着第一个是按单词长度升序排列列表,第二个是按单词长度降序排列。

fruitsLi = ['oranges', 'blackberry', 'apple', 'kiwi', 'cherry']
print("\n Original = ", fruitsLi)

fruitsLi.sort(key = len)
print("\nAscending = ", fruitsLi)

fruitsLi.sort(reverse = True, key = len)
print("Descending= ", fruitsLi)

 Original =  ['oranges', 'blackberry', 'apple', 'kiwi', 'cherry']

Ascending =  ['kiwi', 'apple', 'cherry', 'oranges', 'blackberry']
Descending=  ['blackberry', 'oranges', 'cherry', 'apple', 'kiwi']

如何排序混合列表项?

我将在混合元素上使用它。

MixedLi = ['apple',  1, 5, 'Kiwi', 'Mango']

MixedLi.sort()

print("The Items After are : \n", MixedLi)

它抛出错误,因为它无法在字符串和 int 上应用 < 操作。

Traceback (most recent call last):
  File "/Users/suresh/Desktop/simple.py", line 3, in <module>
    ........
TypeError: '<' not supported between instances of 'int' and 'str'
>>> 

如何排序 Python 中的嵌套列表项?

以下示例帮助您了解此排序函数在嵌套列表项上的用法。

这次,我们在嵌套列表上使用了该函数。这里,它使用每个嵌套列表中的第一个值来按升序组织项目。

Mixed = [[71, 222], [222, 13], [14, 15], [99, 77]]

Mixed.sort()

print(Mixed)
[[14, 15], [71, 222], [99, 77], [222, 13]]

使用用户定义的函数对嵌套列表项进行排序

您不必限制自己只对嵌套列表的第一个值进行排序。通过创建用户定义的函数,您可以使用任何值来排序嵌套项。

在此示例中,我们创建了一个函数来选择第二个值作为键。这意味着第一个代码片段根据嵌套列表中的第二个值对项目进行排序 - 第二行使用第二个项目按降序排序。

def second(value):
    return value[1]

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

mixed.sort(key = second)
print("\nAscending = ", mixed)

mixed.sort(reverse = True, key = second)
print("Descending = ", mixed)

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

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

使用 key 和 reverse 对 Python 嵌套列表项按降序排序

我们又举了一个例子来解释这个 key 参数和自定义函数。这次也使用第二个值作为键。如您所见,尽管我们的嵌套列表中有三个值,但它仍然根据第二个项目对项目进行排序。

def second(value):
    return value[1]

mixed = [[17, 222, 15], [222, 13, 55], [14, 151, 31], [99, 77, 9]]
print("\nOriginal = ", mixed)

mixed.sort(key = second)
print("\nAscending = ", mixed)

# Descending Order
mixed.sort(reverse = True, key = second)
print("Descending = ", mixed)

Original =  [[17, 222, 15], [222, 13, 55], [14, 151, 31], [99, 77, 9]]

Ascending =  [[222, 13, 55], [99, 77, 9], [14, 151, 31], [17, 222, 15]]
Descending =  [[17, 222, 15], [14, 151, 31], [99, 77, 9], [222, 13, 55]]

让我将此键值更改为 3 个嵌套值。我们可以通过在用户定义的函数中更改项目索引位置为 2 来实现。

def third(value):
    return value[2]

mixed = [[17, 222, 15], [222, 13, 55], [14, 151, 31], [99, 77, 9]]
print("\n Original = ", mixed)

mixed.sort(key = third)
print("\nAscending = ", mixed)

mixed.sort(reverse = True, key = third)
print("Descending = ", mixed)

 Original =  [[17, 222, 15], [222, 13, 55], [14, 151, 31], [99, 77, 9]]

Ascending =  [[99, 77, 9], [17, 222, 15], [14, 151, 31], [222, 13, 55]]
Descending =  [[222, 13, 55], [14, 151, 31], [17, 222, 15], [99, 77, 9]]

Python 动态整数列表排序示例

程序 与第一个示例相同。但是,这次我们允许用户输入长度。接下来,我们使用 For Loop 向其中添加数字。

最后,我们使用此 Python 函数按升序对整数列表进行排序。

intLi = []

number = int(input("Please enter the Total Number of Elements: "))
for i in range(1, number + 1):
    value = int(input("Please enter the Value of %d Element : " %i))
    intLi.append(value)

print("Before is : ", intLi)
intLi.sort()
print("Items After applying is : ", intLi)
Python Sort List Function  Example

在此程序中,我们使用了 reverse 参数来按降序排列元素。

numLi = []

number = int(input("Please enter the Number of Elements: "))
for i in range(1, number + 1):
    item = int(input("%d Item : " %i))
    numLi.append(item)

print("\nBefore : ", numLi)
numLi.sort(reverse = True)
print("Descending : ", numLi)
Please enter the Number of Elements: 5
1 Item : 25
2 Item : 33
3 Item : 12
4 Item : 87
5 Item : 20

Before :  [25, 33, 12, 87, 20]
Descending :  [87, 33, 25, 20, 12]

如何排序用户输入的字符串单词列表?

它允许用户输入自己的字符串或单词。接下来,我们使用它按升序排列它们。

strSL = []

number = int(input("Please enter the Total Number of Elements: "))
for i in range(1, number + 1):
    item = input(" %d Element : " %i)
    strSL.append(item)

print("\nBefore : ", strSL)
strSL.sort()
print("After : ", strSL)
Please enter the Total Number of Elements: 4
1 Element : kiwi
2 Element : dragon
3 Element : apple
4 Element : banana

Before :  ['kiwi', 'dragon', 'apple', 'banana']
After :  ['apple', 'banana', 'dragon', 'kiwi']

按反向顺序排序字符串列表

在此程序中,我们在函数内使用了 reverse 参数来按降序对字符串项进行排序。接下来,我们使用 key = len,通过字符串长度按升序和降序对列表项进行排序。

str1 = []

number = int(input("Please enter the Total Elements: "))
for i in range(1, number + 1):
    item = input("%d Element : " %i)
    str1.append(item)

print("\nBefore : ", str1)
str1.sort(reverse = True)
print("Descending : ", str1)

str1.sort(reverse = True, key = len)
print("Length : ", str1)
Please enter the Total Elements: 5
1 Element : cherry
2 Element : apple
3 Element : orange
4 Element : kiwi
5 Element : balckberry

Before :  ['cherry', 'apple', 'orange', 'kiwi', 'balckberry']
Descending :  ['orange', 'kiwi', 'cherry', 'balckberry', 'apple']
Length :  ['balckberry', 'orange', 'cherry', 'apple', 'kiwi']