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

Python中sort()函数的用法及其效果

发布时间:2023-06-05 06:58:34

Python中的sort()函数是用来对列表进行排序的,它可以按照升序或者降序排列列表中的元素,默认情况下是按照升序排列。sort()函数可以对Python中的列表、元组、字典、集合等可迭代对象进行排序。

sort()函数可以接收两个参数key和reverse,其中key用来指定排序的依据,而reverse用来指定排序的方向。

sort()函数默认按照升序排列,可以通过reverse参数来指定排序方向。如果reverse的值为True,则按照降序排列,否则按照升序排列。

sort()函数也可以通过key参数来指定排序依据。key参数是一个函数,用来指定排序的依据,可以用lambda表达式来指定排序的依据,也可以用自定义的函数来指定排序的依据。

下面是sort()函数的详细用法及其效果:

1.默认按照升序排列

sort()函数默认按照升序排列列表中的元素。下面的代码演示了如何使用sort()函数对列表进行排序:

numbers = [3, 5, 1, 8, 2, 9, 4]
numbers.sort()
print(numbers)  # [1, 2, 3, 4, 5, 8, 9]

2.按照降序排列

如果要按照降序排列列表中的元素,可以传递reverse=True参数给sort()函数。下面的代码演示了如何按照降序排列列表中的元素:

numbers = [3, 5, 1, 8, 2, 9, 4]
numbers.sort(reverse=True)
print(numbers)  # [9, 8, 5, 4, 3, 2, 1]

3.按照指定的依据排序

有时候,我们需要按照列表中元素的某个属性或者某个函数的返回值进行排序。这时候就可以使用key参数来指定排序依据。key参数是一个函数,可以用lambda表达式或者自定义的函数来指定排序依据。下面的代码演示了如何按照字符串长度排序:

words = ['apple', 'banana', 'cherry', 'pear', 'orange']
words.sort(key=lambda x: len(x))
print(words)  # ['pear', 'apple', 'cherry', 'banana', 'orange']

在上面的代码中,我们使用了lambda表达式来指定排序依据。lambda表达式lambda x: len(x)返回字符串的长度,并且按照字符串长度进行排序。

我们也可以使用自定义的函数来指定排序依据,下面的代码演示了如何按照字符串中字母'e'的个数进行排序:

def count_e(word):
    return word.count('e')

words = ['apple', 'banana', 'cherry', 'pear', 'orange']
words.sort(key=count_e)
print(words)  # ['banana', 'pear', 'apple', 'orange', 'cherry']

在上面的代码中,我们定义了一个函数count_e,该函数接收一个字符串,返回字符串中字母'e'的个数。然后,在使用sort()函数进行排序时,我们使用这个函数来指定排序依据。

4.sort()函数和sorted()函数的区别

sort()函数是列表的一个方法,只能用于列表的排序,排序后的结果直接在原列表中修改。而sorted()函数是Python内置函数,可以用于对任何可迭代对象进行排序,返回排序后的列表,原列表不发生改变。下面是一个示例:

numbers = [3, 5, 1, 8, 2, 9, 4]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # [1, 2, 3, 4, 5, 8, 9]
print(numbers)  # [3, 5, 1, 8, 2, 9, 4]

在上面的代码中,我们使用sorted()函数对numbers进行了排序,并将排序后的列表赋值给sorted_numbers变量。可以看到,sorted()函数返回的是排序后的新列表,而原列表不变。