Python列表排序 - 如何在Python中对列表进行排序

什么是 Python 中的 a?List

列表是 Python 中的一种数据类型,您可以在其中存储不同数据类型(包括嵌套列表)的多个值。

以下是列表示例:

numList = [1, 2, 3, 4, 5]stringList = ["banana", "orange", "apple"]mixedList = [1, "banana", "orange", [5, 6]]

您可以使用列表中的项目索引位置访问这些项目。索引位置从列表中的 0 开始:

stringList = ["banana", "orange", "apple"]print(stringList[1])# "orange"

如何在Python中对列表进行排序

您可以使用该方法在Python中对列表进行排序。sort()

该方法允许您对列表中的项目进行排序。语法如下:sort()

list.sort(reverse=True|False, key=sortFunction)

该方法接受两个可选参数:

  • reverse:如果或按常规顺序(升序)if(默认为)按相反顺序(降序)对列表进行排序TrueFalse
  • key:您提供的用于描述排序方法的函数

默认情况下,您可以按升序对字符串和数字进行排序,而无需将参数传递给此方法:

items = ["orange", "cashew", "banana"]items.sort()# ['banana', 'cashew', 'orange']

在上面,您可以看到排序列表首先具有b(在香蕉中),然后是c(在腰果中),因为这在b之后,最后是o(橙色),它按字母顺序排列。

请注意,此方法修改原始数组。

对于降序,可以传递反向参数:

items = [6, 8, 10, 5, 7, 2]items.sort(reverse=True)# [10, 8, 7, 6, 5, 2]

通过传递到参数,您会看到列表中的数字按相反顺序排序,即降序。Truereverseitems

如何指定排序函数

如果您在字典列表中尝试过呢?我看看:

items = [{    'name': 'John',    'age': 40}, {    'name': 'Mike',    'age': 45}, {    'name': 'Jane',    'age': 33}, {    'name': 'Asa',    'age': 42}]items.sort()

您将收到错误,因为字典不可排序。您可以在此处使用参数指定排序条件:key

items = [  {  'name': 'John',  'age': 40  },  {       'name': 'Mike',    'age': 45  },  {       'name': 'Jane',    'age': 33  },  {       'name': 'Asa',    'age': 42  }]def sortFn(dict):  return dict['age']items.sort(key=sortFn)# [#   {'name': 'Jane', 'age': 33},#   {'name': 'John', 'age': 40},#   {'name': 'Asa', 'age': 42},#   {'name': 'Mike', 'age': 45}# ]

正如您将在上面的代码块中注意到的那样,使用排序函数,我们已经指定排序决策应基于每个字典中的键。age

如果按此处传递参数,则排序后的字典将按降序排列。reverseTrue

下面是使用排序函数的另一个示例:

items = ["cow", "elephant", "duck"]def sortFn(value):    return len(value)items.sort(key=sortFn, reverse=True)# ['elephant', 'duck', 'cow']

在这种情况下,排序函数返回列表中值的长度作为排序过程的条件。通过传递 ,您可以看到排序列表首先具有较长的字符串,然后是较短的字符串。reverseTrue

关注获得更多学习资料

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章