目录
sort()使用
排序处理
升序由小到大排序:
sort与sorted
总结
降序由大到小排序:
key 参数详解
按字符串长度升序排序
按字符串第二个字符排序
sort()使用
list.sort(key=None, reverse=False)
-
功能:对列表原地排序(直接修改原列表,不返回新列表)。
-
参数:
-
key
:指定排序规则(如按字符串长度、按某个字段等)。 -
reverse
:是否降序排序(默认False
,即升序)。
-
排序处理
升序由小到大排序:
sort与sorted
sort()
是原地排序,即直接修改原列表,不返回任何值(返回None
)
nums = [3, 1, 4, 2] nums.sort() # 原地排序,nums变为[1, 2, 3, 4]
-
sorted()
返回一个新的排序后的列表,原对象不会被修改。
nums = [3, 1, 4, 2] sorted_nums = sorted(nums) # 返回新列表,nums不变 print(sorted_nums) # 输出:[1, 2, 3, 4] print(nums) # 输出:[3, 1, 4, 2](原列表未变)
总结
方法 | 修改原列表 | 返回值 | 适用对象 | 示例 |
---|---|---|---|---|
list.sort() | 是 | None | 仅列表 | nums.sort(reverse=True) |
sorted() | 否 | 新列表 | 任意可迭代对象 | sorted(words, key=len) |
降序由大到小排序:
sort(reverse=True)
nums = [3, 1, 4, 2]
nums.sort() # 默认升序
print(nums) # 输出:[1, 2, 3, 4]
nums.sort(reverse=True) # 降序
print(nums) # 输出:[4, 3, 2, 1]
key
参数详解
key
用于指定排序规则,通常是一个函数(如lambda
或内置函数)
(注:lambda是 是 Python 中的一种匿名函数(没有名字的函数))
按字符串长度升序排序
-
l.sort(key=lambda x: len(x))
:根据字符串长度进行升序排序。
习题练习:
n = int(input())
strings = input().split()
# 删除每个字符串的最后一个字符
processed = [s[:-1] for s in strings]
# 按长度排序
processed.sort(key=lambda x: len(x))
# 输出结果
print(' '.join(processed))
按字符串第二个字符排序
words.sort(key=lambda x: x[1]) # 按第二个字母升序
print(words) # 输出:['banana', 'apple', 'cherry'](a < p < h)