python - 访问排序嵌套列表的第一个元素以获得第二小的第二个元素
问题描述
我有一个嵌套链表:
list_a = [[A, 12.1], [B, 15.6], [C, 9.8], [D, 12.1], [F, 96.3]]
sorted(list_a)
根据子列表的第二个元素,我已经使用 成功对列表进行了排序。如何获得输出 A 和 D(具有第二小第二元素的列表的第一元素)?
解决方案
这里不需要完整的排序。您可以使用heap.nsmallest
后跟列表理解:
from heapq import nsmallest
from operator import itemgetter
list_a = [['A', 12.1], ['B', 15.6], ['C', 9.8], ['D', 12.1], ['F', 96.3]]
second_largest_val = nsmallest(2, map(itemgetter(1), list_a))[1]
res = [key for key, val in list_a if val == second_largest_val]
# ['A', 'D']
推荐阅读
- python - Keras:如何为验证集抽取随机样本?
- powershell - Exchange PowerShell 从输入文件导出邮箱时出错
- qt - knuminput.h 在 QT Creator 中不可用
- c# - 添加新行后在 Winforms 中合并 DataGridView 单元格
- apache-kafka - kafka-streams :在发送到 kafka 主题之前修改消息结构
- android - 如何摆脱应用程序模块中的模块特定库存储库?
- python - 在一个语句中写入文件是否比多个语句更有效?
- swift - Swift - 使用 URL 下载的低分辨率 firebase 照片
- javascript - 页面对象模型中的 Javascript 执行器
- c# - 解析表达式树