使用Python内置的sorted()函数对列表进行排序。
sorted()函数返回一个新的已排序列表,而不改变原始列表。
默认情况下,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]
如果要按降序排序,可以使用reverse=True参数:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_list = sorted(my_list, reverse=True)
print(sorted_list)
# 输出 [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
另外,如果要按照自定义的规则排序,可以使用key参数来指定一个函数,该函数将应用于列表中的每个元素,并返回一个用于排序的值。
例如,按照字符串长度进行排序:
my_list = ["apple", "banana", "orange", "grape", "watermelon"]
sorted_list = sorted(my_list, key=len)
print(sorted_list)
# 输出 ['apple', 'grape', 'banana', 'orange', 'watermelon']
除了常规的列表,sorted()函数也可以用于排序其他可迭代对象,比如元组和集合。它也可以接受一些可选参数来进行高级排序。
下面是一些sorted()函数的示例:
对元组进行排序
my_tuple = (3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5)
sorted_tuple = tuple(sorted(my_tuple))
print(sorted_tuple)
# 输出 (1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9)
对集合进行排序
my_set = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5}
sorted_set = sorted(my_set)
print(sorted_set)
# 输出 [1, 2, 3, 4, 5, 6, 9]
使用lambda函数进行高级排序
my_list = ["apple", "banana", "orange", "grape", "watermelon"]
sorted_list = sorted(my_list, key=lambda x: x[1])
print(sorted_list)
# 输出 ['banana', 'grape', 'orange', 'apple', 'watermelon']
在这个例子中,我们使用key参数指定一个lambda函数,该函数返回列表中每个元素的第二个字符(即第二个字母),然后根据这个返回值进行排序。
需要注意的是,sorted()函数返回一个新的已排序列表,而不会更改原始列表。如果想要对原始列表进行排序,可以使用列表的sort()方法。
sort()方法与sorted()函数类似,但是不会返回一个新列表。它会直接更改原始列表的顺序。
下面是一些sort()方法的示例:
对列表进行升序排序
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print(my_list)
# 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
对列表进行降序排序
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort(reverse=True)
print(my_list) # 输出 [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
对列表中的元素进行自定义排序
my_list = ["apple", "banana", "orange", "grape", "watermelon"]
my_list.sort(key=lambda x: x[1])
print(my_list) # 输出 ['banana', 'grape', 'orange', 'apple', 'watermelon']
在这个例子中,我们使用key参数指定一个lambda函数,该函数返回列表中每个元素的第二个字符(即第二个字母),然后根据这个返回值进行排序。
需要注意的是,sort()方法只适用于可变序列类型(如列表),而不适用于不可变序列类型(如元组)。