VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • Python 列表数据类型(list)[学习 Python 必备基础知识][看此一篇就够了](3)

方法。

使用格式如下所示:

listname.sort(*, key=None, reverse=False)

对以上格式说明,

  • sort()sort()方法会对列表进行原地排序,即修改原列表。
  • sort()方法接受两个仅限以关键字形式传入的参数。
  • key:指定带有一个参数的函数,用于从每个列表元素中提取比较键 (例如 key=str.lower)。 对应于列表中每一项的键会被计算一次,然后在整个排序过程中使用。 默认值 None 表示直接对列表项排序而不计算一个单独的键值。
  • reversereverse 为一个布尔值。默认为False,表示升序排序。 如果设为 True,则每个列表元素将按反向顺序(降序)比较进行排序。

举例如下所示:
例一,

list_demo = [4, 1, 3, 2, 8, 5]

print('排序前 list_demo =', list_demo)
list_demo.sort()  # 对列表进行升序排序操作
# list_demo.sort(reverse=False)  # 升序排序操作也可以这么写
print('升序排序后 list_demo =', list_demo)
list_demo.sort(reverse=True)  # 降序排序
print('降序排序后 list_demo =', list_demo)

运行结果:

排序前 list_demo = [4, 1, 3, 2, 8, 5]
升序排序后 list_demo = [1, 2, 3, 4, 5, 8]
降序排序后 list_demo = [8, 5, 4, 3, 2, 1]

例二,

# 为 key 参数准备调度函数
def take_second(element):
    return element[1]


list_demo = [(1, 3), (3, 5), (2, 4), (5, 1)]

print('排序前 list_demo =', list_demo)
list_demo.sort()  # 升序排序。元组作为列表的元素,排序是以元组的第一个元素进行比较。
print('元组作为列表的元素,排序是以元组的第一个元素进行比较 list_demo =', list_demo)
list_demo.sort(key=take_second)  # 升序排序。元组作为列表的元素,排序是以元组的第二个元素进行比较。
print('元组作为列表的元素,排序是以元组的第一个元素进行比较 list_demo =', list_demo)

运行结果:

排序前 list_demo = [(1, 3), (3, 5), (2, 4), (5, 1)]
元组作为列表的元素,排序是以元组的第一个元素进行比较 list_demo = [(1, 3), (2, 4), (3, 5), (5, 1)]
元组作为列表的元素,排序是以元组的第一个元素进行比较 list_demo = [(5, 1), (1, 3), (2, 4), (3, 5)]

6.2 使用 sorted() 内置函数排序

从一个可迭代对象构建一个新的排序列表,要使用sorted()内置函数。

使用格式如下所示:

sorted(iterable, * ,key=None, reverse=False)

对以上格式说明,

  • 返回值:sorted()内置函数会根据 iterable 中的项返回一个新的已排序列表。
  • 具有两个可选参数,它们都必须指定为关键字参数。
  • key: 指定带有单个参数的函数,用于从 iterable 的每个元素中提取用于比较的键 (例如 key=str.lower)。 默认值为 None (直接比较元素)。
  • reverse :为一个布尔值。默认为False,表示升序排序。 如果设为 True,则每个列表元素将按反向顺序(降序)比较进行排序。

举例如下所示:

# 为 key 参数准备调度函数
def take_second(element):
    return element[1]


list_demo = [(1, 3), (3, 5), (2, 4), (5, 1)]

print('排序前 list_demo =', list_demo)
new_list1 = sorted(list_demo, key=None)  # 升序排序。元组作为列表的元素,排序是以元组的第一个元素进行比较。
print('元组作为列表的元素,排序是以元组的第一个元素进行比较 list_demo =', new_list1)
new_list2 = sorted(list_demo, key=take_second)  # 升序排序。元组作为列表的元素,排序是以元组的第二个元素进行比较。
print('元组作为列表的元素,排序是以元组的第一个元素进行比较 list_demo =', new_list2)

运行结果:

排序前 list_demo = [(1, 3), (3, 5), (2, 4), (5, 1)]
元组作为列表的元素,排序是以元组的第一个元素进行比较 list_demo = [(1, 3), (2, 4), (3, 5), (5, 1)]
元组作为列表的元素,排序是以元组的第一个元素进行比较 list_demo = [(5, 1), (1, 3), (2, 4), (3, 5)]

相关教程