在Python中,可以使用sorted()
函数对列表进行排序。sorted()
函数接受一个可迭代对象作为参数,并返回一个新的已排序的列表。我们可以使用key
参数来指定排序的规则。
下面是一个示例代码,展示了如何按照对象属性和排序参数对列表进行排序:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person(name='{self.name}', age={self.age})"
# 创建一个包含Person对象的列表
people = [
Person("Alice", 25),
Person("Bob", 30),
Person("Charlie", 20)
]
# 按照年龄升序排序
sorted_people = sorted(people, key=lambda p: p.age)
print(sorted_people)
# 按照年龄降序排序
sorted_people = sorted(people, key=lambda p: p.age, reverse=True)
print(sorted_people)
在上面的示例中,我们定义了一个Person
类,它有两个属性:name
和age
。我们创建了一个包含Person
对象的列表people
。然后,我们使用sorted()
函数对people
列表进行排序,指定key
参数为一个lambda函数,该函数返回对象的age
属性。这样就可以按照年龄对列表进行排序。
在第一个sorted()
函数调用中,我们没有指定reverse
参数,默认为False,所以列表按照升序排序。在第二个sorted()
函数调用中,我们指定reverse=True
,所以列表按照降序排序。
输出结果为:
[Person(name='Charlie', age=20), Person(name='Alice', age=25), Person(name='Bob', age=30)]
[Person(name='Bob', age=30), Person(name='Alice', age=25), Person(name='Charlie', age=20)]
注意,sorted()
函数返回一个新的已排序的列表,原列表的顺序并没有改变。如果你想在原地对列表进行排序,可以使用列表的sort()
方法。