如何从元组列表中获取最大值(?)

时间:2019-07-18 08:52:22

标签: python python-3.x max

我的数据看起来像这样:

我有一个列表d

d = [(0, [(1, 0.15122674), (2, 0.59446937), (3, 0.06613562), (4, 0.1877523)]),
    (1, [(1, 0.46739018), (4, 0.5283537)]),
    (2, [(1, 0.99668014)])]

我想要一个输出:

[(0, [(2, 0.59446937)]),
(1, [(4, 0.5283537)]),
(2, [(1, 0.99668014)])]

在取最大值的地方,查看这些元组的第二个值。

我不太确定从哪里开始,因为我是python初学者。我了解这是否是简单的元组列表,我们可以执行以下操作:

max(d,key=lambda x:x[1])

但是鉴于我的数据结构,我不太确定该怎么做...

1 个答案:

答案 0 :(得分:1)

您可以使用列表推导和operator.itemgetter使其变得更容易:

In [9]: from operator import itemgetter

In [10]: [(i, max(j, key=itemgetter(1))) for i, j in d]
Out[10]: [(0, (2, 0.59446937)), (1, (4, 0.5283537)), (2, (1, 0.99668014))]