如何用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()方法对列表进行原地排序。
