今天我们要玩点有趣的——用一行代码来展示sort()函数的超级能力!通常,排序算法可能让你觉得是编程中的“重量级选手”,但有了Python的sort(),一切都变得轻而易举,甚至可以做到优雅至极。下面是十个让人拍案叫绝的一行代码示例,保证让你在朋友面前成为排序小能手!
示例1:基本排序,从简入繁
numbers = [3, 1, 4, 1, 5, 9, 2, 6]; numbers.sort(); print(numbers)
这行代码就像变魔术,sort()
直接在原列表上操作,将数字按升序排列,简单又高效!
示例2:降序也轻松
numbers.sort(reverse=True); print(numbers)
加个reverse=True
,瞬间反转乾坤,从大到小,就这么简单!
示例3:列表中字符串排序
words = ["banana", "apple", "cherry"]; words.sort(); print(words)
不仅仅是数字,字符串也能轻松排序,按字母顺序来一场水果派对
示例4:忽略大小写排序字符串
words = ["Banana", "apple", "Cherry"]; words.sort(key=str.lower); print(words)
使用key=str.lower
,大小写不再是障碍,所有单词平等对待!
示例5:复杂对象排序,按属性来
class Fruit:
def __init__(self, name, sweetness):
self.name = name
self.sweetness = sweetness
fruits = [Fruit('apple', 7), Fruit('banana', 20)]; sorted_fruits = sorted(fruits, key=lambda x: x.sweetness); print([fruit.name for fruit in sorted_fruits])
示例6:自定义排序规则
nums = [10, 2, 33, 1]; nums.sort(key=lambda x: -x); print(nums)
负号前缀,让排序规则由升序变为降序,灵活控制,随心所欲!
示例7:多级排序
students = [('Alice', 85), ('Bob', 92), ('Charlie', 78), ('Alice', 90)]; students.sort(key=lambda x: (x[0], -x[1])); print(students)
示例8:列表嵌套列表排序
nested = [[3, 2], [1, 5], [2, 1]]; nested.sort(key=lambda x: x[1]); print(nested)
面对列表中的列表,指定内层的哪个元素来排序,一招制胜!
示例9:组合多个条件排序
items = [("apple", 3), ("banana", 2), ("orange", 3, 50), ("pear", 1, 30)]; items.sort(key=lambda x: (x[1], -x[2] if len(x) > 2 else 0)); print(items)
混合使用多个排序条件,甚至处理不规则数据,sort()也能从容应对!
示例10:排序与lambda的终极结合
data = [{"name": "John", "age": 30}, {"name": "Alex", "age": 25}]; data.sort(key=lambda x: x['age']); print([person['name'] for person in data])
处理字典列表,根据年龄排序,提取名字列表,一行代码解决复杂问题,lambda的简洁之美!