首页 > 技术文章 > Python中列表的sort()方法

liuyongbo 2020-08-21 11:34 原文

1.sorted()和sort()

  区别:sort是列表的方法,而sorted()是一个内置函数,sorted得到的结果会产生一个新的被排序的变量,之前的变量是不变的,所以元组排序甚至可以用sorted(元组),因为元组不可变可以用sorted排序得到新的元组

如果是列表的话就可以直接用sort方法排序了

2.sort()指定排序规则

  比如:students.sort(key=lambda student:student["age"])

  这表示指定按照student的age进排序。匿名函数作为参数。找到排序规则,这里的排序规则要求就是一个函数类型的参数

students=[
    {"name":"Alex","age":12,"height":175},
    {"name":"Jerry","age":18,"height":172},
    {"name":"Bob","age":22,"height":180},
    {"name":"Tom","age":14,"height":166}
]

students.sort(key=lambda student:student["age"])
print(students)


#实现机制,其实和定义一个函数,返回值指定为排序规则。s如果打印出来其实就是每一个元素和lambda中的student是一个意思
def foo(s):
    return s["height"]

students.sort(key=foo)
print(students)
--------------------------------------------------------------------------------
[{'name': 'Alex', 'age': 12, 'height': 175}, {'name': 'Tom', 'age': 14, 'height': 166}, {'name': 'Jerry', 'age': 18, 'height': 172}, {'name': 'Bob', 'age': 22, 'height': 180}]
[{'name': 'Tom', 'age': 14, 'height': 166}, {'name': 'Jerry', 'age': 18, 'height': 172}, {'name': 'Alex', 'age': 12, 'height': 175}, {'name': 'Bob', 'age': 22, 'height': 180}]

  

  

推荐阅读