python中sorted和sort函数的用法和例题分析 |
您所在的位置:网站首页 › Python讲解回答有关内置对象sorted › python中sorted和sort函数的用法和例题分析 |
1、知识点
sorted()和sort()函数都可以用于对可迭代对象进行排序,但它们之间有一些重要的区别: sorted()是一个内置函数,它接受一个可迭代对象作为参数,并返回一个新的已排序的列表。原始的可迭代对象保持不变。sort()是一个列表方法,它在原地对列表进行排序,即修改了原始的列表,不返回新的列表。下面是它们的使用示例: 使用sorted()函数示例: numbers = [3, 1, 4, 2, 5] sorted_numbers = sorted(numbers) print(sorted_numbers) # 输出:[1, 2, 3, 4, 5] print(numbers) # 输出:[3, 1, 4, 2, 5],原始列表保持不变 不变使用sort()方法示例: numbers = [3, 1, 4, 2, 5] numbers.sort() print(numbers) # 输出:[1, 2, 3, 4, 5],原始列表被排序因此,如果你只需要对一个列表进行排序而不需要保留原始顺序,可以直接使用sort()方法。如果你希望保留原始列表并获得一个新的排序后的列表,可以使用sorted()函数。 在sorted()函数中,key关键字参数用于指定一个可调用对象(函数),该函数将应用于要排序的每个元素,并根据返回值进行排序。具体使用方式如下: sorted(iterable, key=key_function, reverse=False) iterable:表示要排序的可迭代对象,比如列表、元组等。key:是一个可调用对象(函数),用于为每个元素提供一个用于排序的值。reverse:默认为False,表示升序排序。若设为True,则表示降序排序。以下是一个简单的示例,演示了如何使用key关键字参数对字符串列表按照字符串长度进行排序: words = ['apple', 'banana', 'cherry', 'date'] sorted_words = sorted(words, key=len) print(sorted_words) # 输出:['date', 'apple', 'cherry', 'banana']在上面的示例中,key=len指定了按照字符串的长度进行排序,sorted()函数会将每个字符串传递给len()函数并获得长度作为排序依据。 你可以根据具体需求编写自定义的key函数来实现不同的排序规则。 2、例题(绝对值排序) 任务描述读入一个列表,按照绝对值从大到小排序,如果绝对值相同,则正数在前面。 提示:使用list1=eval(input())直接读入一个列表。 输入格式题目的输入为一行,是一个元素类型都是数值的列表, 如:[3,-4,2,4] 输出格式输出为一行,是按照绝对值从大到小排序后的列表里的元素,元素之间用一个英文半角逗号分隔,如: 4,-4,3,2 示例1输入:[3,-4,2,4] 输出:4,-4,3,2 示例2输入:[5.2,3,4,6,-5.2] 输出:6,5.2,-5.2,4,3 list1=eval(input()) list1.sort(key=lambda x:(abs(x),x),reverse=True) # 或者list1 = sorted(list1, key=lambda x: (abs(x), x), reverse=True) print(','.join(map(str,list1))) # 或者print(*map(str,list1),sep=',',end='')解析: key=lambda x: (abs(x), x) 是一个匿名函数(lambda函数),用作排序的关键字函数。 abs(x) 表示对元素 x 取绝对值,而 x 则表示原始元素本身。 该 lambda 函数将每个元素 x 转换为一个元组 (abs(x), x),其中第一个元素是 x 的绝对值,第二个元素是 x 本身。这样,排序将根据两个因素进行:首先根据绝对值大小排序,然后在相同绝对值的情况下按照原始值进行排序。 通过这种方式,可以实现按照绝对值从大到小排序,如果绝对值相同,则正数在前面。 举个例子,假设有以下列表: numbers = [-3, 2, -1, 4, -2] 应用上述 lambda 函数进行排序,得到的结果如下: sorted_numbers = sorted(numbers, key=lambda x: (abs(x), x)) print(sorted_numbers) # 输出:[4, -3, -2, -1, 2]在上面的例子中,元素 4 和 -3 的绝对值都是 4,但由于 4 是正数,所以排在前面。元素 -2 和 -1 的绝对值都是 2,由于 -2 更小,所以排在前面。元素 2 的绝对值是 2,是正数,所以排在最后。 这样就实现了按照绝对值从大到小排序,并且相同绝对值的元素中正数在前的排序方式。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |