在Python中,`key`函数通常用于排序操作,它可以指定一个函数,该函数会对列表中的每个素进行处理,然后根据处理后的结果进行排序。`key`参数可以是一个函数或者一个`lambda`表达式。
1. 对列表进行排序:
使用内置函数len作为key参数li = ['apple', 'banana', 'orange', 'kiwi']li.sort(key=len)print(li) 输出:['kiwi', 'apple', 'orange', 'banana']使用lambda函数作为key参数li = [{'name': 'John', 'age': 25}, {'name': 'Jane', 'age': 28}, {'name': 'Bob', 'age': 20}]li.sort(key=lambda x: x['age'])print(li) 输出:[{'name': 'Bob', 'age': 20}, {'name': 'John', 'age': 25}, {'name': 'Jane', 'age': 28}]
2. 在`max`和`min`函数中使用`key`参数:
获取列表中的最大值lst = [{'age': 20}, {'age': 23}]print(max(lst, key=lambda x: x['age'])) 输出:{'age': 23}获取字典中值最大的键salaries = {'jasn': 30090, 'nancy': , 'jack': 10000, 'nick': 2090}print('工资最多的人是:', max(salaries, key=lambda x: salaries[x])) 输出:工资最多的人是: nancy
3. 对字符串集合根据其中不同字母的数量进行排序:
strings = ['aaaa', 'foo', 'abab', 'bar', 'card']strings.sort(key=lambda x: len(set(list(x))))print(strings) 输出:['aaaa', 'foo', 'abab', 'bar', 'card']
4. 对自定义对象列表根据属性进行排序:
class Car():def __init__(self, carname, oilcp100km, price):self.carname, self.oilcp100km, self.price = carname, oilcp100km, pricedef __repr__(self):return str(self.__dict__)car1, car2, car3 = Car('爱丽舍', 8, 10), Car('凯美瑞', 7, 27), Car('科帕奇', 12, 23)cars = [car1, car2, car3]cars.sort(key=lambda x: x.price) 根据售价进行排序print(cars) 输出:[Car(carname='凯美瑞', oilcp100km=7, price=27), Car(carname='爱丽舍', oilcp100km=8, price=10), Car(carname='科帕奇', oilcp100km=12, price=23)]
使用`key`函数可以灵活地对数据结构进行排序和处理
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/83501.html