python - 在 sorted 中使用 Lambda 函数
问题描述
常规未排序字典
>>> d = {'banana': 3, 'apple': 4, 'pear': 1, 'orange': 2}
按键排序的字典
>>> OrderedDict(sorted(d.items(), key=lambda t: t[0]))
按值排序的字典
>>> OrderedDict(sorted(d.items(), key=lambda t: t[1]))
上面几行中 lambda 函数的工作原理。什么是 t[0],t[1]?
解决方案
在这里 lambda 函数的工作就像,用第二项对元组列表进行排序。排序(d.items(),键= lambda t:t [1])
d.items()
会是这样。
[('orange', 2), ('pear', 1), ('banana', 3), ('apple', 4)]
所以lambda t:t[1]
它在给定的迭代器中返回第二个元素。所以它将根据第二个元素进行排序。与lambda t:t[0]
它的第一个元素排序相同。
理解 lambda 函数的示例。
In [39]: func = lambda t:t[1]
In [40]: [func(i) for i in d.items()]
Out[40]: [2, 1, 3, 4]
推荐阅读
- ios - Facebook 图形 API 问题
- eclipse - Eclipse Photon 故障时的 m2e egit 连接器(用于 SCM)
- html - 下载属性问题
- node.js - 使用 mongo shell 找不到 MongoDB 的正确查询
- java - jesport 报告在 javafx 中显示错误
- sql - 根据Oracle中的字段值插入记录数
- java - 根据三个浮点输入过滤 JTable?
- javascript - ng-table 如何使用 Angular 5 从 API AWS 获取数据
- protocol-buffers - 使用 protobuff 编译的 qtcreator 问题
- python - 尝试在 Keras 中构建编码器-解码器模型时出现图形断开错误