使用Python内置的sorted()函数对列表进行排序

使用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()方法只适用于可变序列类型(如列表),而不适用于不可变序列类型(如元组)。

你可能感兴趣的:(python,python,开发语言)