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

Python的sorted函数——排序一个迭代器

发布时间:2023-06-24 14:52:49

sorted函数是Python内置的一个高阶函数。它可以用于排序任何可迭代对象,包括列表、元组、集合等。

sorted函数的基本语法如下:

sorted(iterable, *, key=None, reverse=False)

其中,iterable是排序的可迭代对象,key是一个函数,用于指定排序的关键字,reverse用于指定是否逆序排序。sorted函数返回排序后的列表。

下面我们将利用sorted函数来排序多个实际的例子。

###例一:排序数字列表

我们可以用sorted函数来排序一个数字列表。例如,我们要将一个列表[3, 1, 4, 1, 5, 9, 2]按照从小到大的顺序排序,可以使用如下代码:

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

也可以将列表按照从大到小的顺序排序,只需要将reverse参数设置为True即可:

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

###例二:排序字符串

我们也可以用sorted函数来排序一个字符串。例如,我们要将一个字符串"hello,world"按照字母顺序排序,可以使用如下代码:

word = "hello,world"
sorted_word = sorted(word)
print(sorted_word)
# 输出:[',', 'd', 'e', 'h', 'l', 'l', 'o', 'r', 'w']

注意,sorted函数将字符串拆分为了单个字符,所以输出结果也是一个字符列表。如果我们要将字符按照从小到大的顺序组成一个新字符串,可以使用join函数:

word = "hello,world"
sorted_word = ''.join(sorted(word))
print(sorted_word)
# 输出:',dehllorw'

###例三:按照字符串长度排序

如果我们要将一个字符串列表按照字符串长度从短到长排序,可以使用sorted函数和key参数。例如,我们要将一个字符串列表["apple", "banana", "orange", "grape"]按照字符串长度排序,可以使用如下代码:

fruits = ["apple", "banana", "orange", "grape"]
sorted_fruits = sorted(fruits, key=len)
print(sorted_fruits)
# 输出:['apple', 'grape', 'banana', 'orange']

这里的key参数指定了一个函数len,表示按照字符串长度排序。

###例四:按照元组中的数字排序

如果我们有一个元组列表,每个元素是一个数字和一个字符串,例如[(3, "apple"), (1, "banana"), (4, "orange"), (2, "grape")],我们想按照数字从小到大排序,可以使用sorted函数和lambda函数。代码如下:

fruits = [(3, "apple"), (1, "banana"), (4, "orange"), (2, "grape")]
sorted_fruits = sorted(fruits, key=lambda x: x[0])
print(sorted_fruits)
# 输出:[(1, 'banana'), (2, 'grape'), (3, 'apple'), (4, 'orange')]

这里的key参数指定了一个lambda函数,它取每个元素的 个数字作为排序关键字。

###总结

通过这些例子,我们可以看到sorted函数的用途非常广泛,可以用于排序各种可迭代的对象。掌握它可以帮助我们更加灵活地处理各种数据。