python 类中的属性排序
可以使用Python中的类(class)来定义一个包含姓名和年龄的类。以下是一个示例代码:
class Person: def __init__(self, name, age): self.name = name self.age = age
在上述代码中,我们定义了一个名为 Person
的类,该类包含两个属性 name
和 age
,分别表示人的姓名和年龄。我们使用 __init__
方法来初始化这些属性,该方法在创建一个新的 Person
对象时被自动调用。
现在,我们可以创建一个新的 Person
对象,将其存储在一个变量中,并使用 .
操作符来访问其属性。例如:
person1 = Person("John", 30) print(person1.name) print(person1.age)
这将输出:
John
30
我们还可以创建多个 Person
对象,每个对象都可以具有不同的属性值。
下面我们按年龄对多个对象排序
我们可以使用 Python 的内置 sorted()
函数和 lambda
函数来创建一个按照年龄排序的比较函数。
假设我们有一个包含多个 Person
对象的列表,我们可以编写一个函数来对这个列表进行排序,如下所示:
class Person: def __init__(self, name, age): self.name = name self.age = age def sort_people_by_age(people): # 使用 lambda 函数创建按照年龄排序的比较函数 compare_func = lambda p: p.age # 对 people 列表按照年龄排序 sorted_people = sorted(people, key=compare_func) return sorted_people
在上述代码中,我们首先定义了一个 Person
类,该类包含 name
和 age
属性。然后,我们编写了一个名为 sort_people_by_age()
的函数,该函数接受一个包含 Person
对象的列表作为参数,并返回按照年龄排序后的 Person
对象列表。
在函数中,我们使用 lambda
函数创建一个按照 age
属性排序的比较函数,并将其传递给 Python 的 sorted()
函数中的 key
参数。sorted()
函数将根据这个比较函数对 people
列表进行排序,然后返回排序后的 Person
对象列表。
例如,假设我们有三个 Person
对象,每个对象的年龄不同。我们可以将它们存储在一个列表中,并使用 sort_people_by_age()
函数按照年龄排序:
people = [Person("John", 30), Person("Alice", 25), Person("Bob", 35)] sorted_people = sort_people_by_age(people) # 输出排序后的列表 for person in sorted_people: print(person.name, person.age)
这将输出:
Alice 25 John 30 Bob 35
注意,我们还可以使用 Python 的 sort()
方法来原地排序列表,而不是创建一个新的排序后的列表。例如,可以将 sort_people_by_age()
函数修改为原地排序 people
列表:
def sort_people_by_age(people): compare_func = lambda p: p.age # 在原地排序 people 列表 people.sort(key=compare_func) return people
在这个版本的函数中,我们直接对传入的 people
列表进行排序,而不是创建一个新的列表。这意味着调用 sort_people_by_age()
函数后,原始的 people
列表将被修改为排序后的列表。
本文来自博客园,作者:bertin,转载请注明原文链接:https://www.cnblogs.com/bertin/p/17223650.html