python - 访问排序嵌套列表的第一个元素以获取第二小的第二个元素

标签 python python-3.x list sorting

我有一个嵌套链表:

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 - 访问排序嵌套列表的第一个元素以获取第二小的第二个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53115560/

相关文章:

python gdata youtube 评论提要无法检索超过 150 条评论

r - 将函数应用于 R 中嵌套列表的某些元素

list - Java : sort list of lists

Python:检测输入仅适用于 1 个字符长的字符串

django - 错误 "Reverse for ' django.contrib.auth.views.login' 未找到”

python - 从 popen 中检索环境变量

list - Python (2.x) 列表/子列表选择 -1 怪异

python - 如何在 Python Plotnine barplot 中更改 y 轴以显示百分比 (%)?

python - 将多索引列除以总和以创建百分比

python - 当窗口/对话框为 "presented"时发出 gtk+ 信号