如果你需要对一个 Python 列表进行升序排序,但不想使用
sort
函数,你可以使用 Python 内置的
sorted
函数。该函数返回一个新的已排序列表,而不会修改原始列表。以下是一个示例代码:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_list = sorted(my_list)
print(sorted_list)
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
如果你需要按照列表中元素的某个属性进行排序,你可以传递一个关键字函数(key function)给 sorted
函数,该函数将返回用于排序的关键字。以下是一个示例代码:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
people = [
Person("Alice", 25),
Person("Bob", 20),
Person("Charlie", 30),
Person("David", 25)
sorted_people = sorted(people, key=lambda p: p.age)
for person in sorted_people:
print(person.name, person.age)
Bob 20
Alice 25
David 25
Charlie 30
在上面的代码中,我们定义了一个 Person
类,该类有两个属性 name
和 age
,表示人的姓名和年龄。我们创建了一个包含四个 Person
对象的列表 people
,并使用 sorted
函数按照人的年龄进行排序,从而得到一个新的已排序列表 sorted_people
。最后,我们遍历 sorted_people
列表,并打印每个人的姓名和年龄。排序结果表明,Bob 年龄最小,Charlie 年龄最大。