欢迎访问宙启技术站
智能推送

如何用Python的sorted()函数对列表进行排序?

发布时间:2023-10-05 22:24:32

Python中的sorted()函数可以对列表进行排序。该函数可接受一个可迭代对象作为输入,并返回一个新的已排序的列表。

sorted()函数可以接受多个参数,其中最常用的是可以传递一个关键字参数key,用于指定排序时的比较规则。另外,还可以传递一个布尔类型的reverse参数,用于指定是否进行逆序排序。

当没有指定key参数时,sorted()函数会默认使用元素的原始值进行比较排序。Python对于不同数据类型的元素有默认的比较规则,例如数字按升序排列,字符串按字典序排列。

下面是几种对列表进行排序的方法,供参考:

1. 对数字列表排序:

nums = [3, 1, 5, 2, 4]
sorted_nums = sorted(nums)
print(sorted_nums)  # 输出: [1, 2, 3, 4, 5]

2. 对字符串列表按字典序排序:

words = ["banana", "apple", "cherry", "date"]
sorted_words = sorted(words)
print(sorted_words)  # 输出: ['apple', 'banana', 'cherry', 'date']

3. 对自定义对象列表按属性排序:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

people = [
    Person("Alice", 25),
    Person("Bob", 20),
    Person("Charlie", 30)
]

# 按年龄升序排序
sorted_people = sorted(people, key=lambda p: p.age)
for person in sorted_people:
    print(person.name, person.age)
# 输出:
# Bob 20
# Alice 25
# Charlie 30

4. 对列表进行逆序排序:

nums = [3, 1, 5, 2, 4]
reverse_sorted_nums = sorted(nums, reverse=True)
print(reverse_sorted_nums)  # 输出: [5, 4, 3, 2, 1]

注意,sorted()函数并不会修改原始列表,而是返回一个新的已排序的列表。如果需要在原地进行排序,可以使用列表的sort()方法。

除了sorted()函数,还可以使用列表的sort()方法对列表进行排序。sort()方法会修改原始列表,而不会创建新的列表。使用sort()方法的方式与sorted()函数类似,只是不需要将列表作为参数传递给函数。

总结:对于需要排序的列表,可以使用Python中的sorted()函数对其进行排序。sorted()函数可以接受关键字参数key和reverse,用于指定排序规则和是否进行逆序排序。此外,还可以使用列表的sort()方法对列表进行原地排序。