Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从python列表中选择top value_Python_Python 2.7 - Fatal编程技术网

从python列表中选择top value

从python列表中选择top value,python,python-2.7,Python,Python 2.7,我有以下格式的数据: [[(0, 0.83094628739162768), (1, 0.084504341129265095), (2, 0.08454937147910728)] [(0, 0.89691374553960401), (1, 0.050770065151842916), (2, 0.052316189308553113)] [(0, 0.86427304752389367), (1, 0.068236225898229905), (2, 0.06749072657787641

我有以下格式的数据:

[[(0, 0.83094628739162768), (1, 0.084504341129265095), (2, 0.08454937147910728)]
[(0, 0.89691374553960401), (1, 0.050770065151842916), (2, 0.052316189308553113)]
[(0, 0.86427304752389367), (1, 0.068236225898229905), (2, 0.067490726577876414)]
[(0, 0.06737356458000561), (1, 0.86516097670024872), (2, 0.067465458719745686)]]
第一个值(例如,0、1、2)是组名;第二个值(例如,0.865160)是分数。我想找出每个列表中得分最高的组名。因此,最终结果应该是:

0
0
0
1 

你可以一行解决这个问题

results = [max(collection, key=lambda x: x[1])[0] for collection in data]
我们使用列表理解来处理数据中的每个集合,然后找到第二个元素最大的元组。然后,我们获取该元组的第一个元素以获得组号


这里的键是将
参数设置为max,您可以传递一个任意函数,该函数将应用于序列的元素,结果将用作要比较的值。

您可以在一行中解决此问题

results = [max(collection, key=lambda x: x[1])[0] for collection in data]
我们使用列表理解来处理数据中的每个集合,然后找到第二个元素最大的元组。然后,我们获取该元组的第一个元素以获得组号


这里的键是max的
key
参数,您可以传递一个任意函数,该函数将应用于序列的元素,结果将用作比较值。

您可以使用
max
函数在每个列表中查找最高的评分指数,例如:

>>> sublist = [(0, 0.83094628739162768), (1, 0.084504341129265095), (2, 0.08454937147910728)]
>>> index = max(sublist, key=lambda tup: tup[1])[0]
然后,您可以使用map将其应用于主列表中的所有子列表:

>>> fn = lambda l : max(l, key=lambda tup: tup[1])[0]
>>> indices = map(fn, main_list)

您可以使用
max
功能查找每个列表中的最高评分索引,例如:

>>> sublist = [(0, 0.83094628739162768), (1, 0.084504341129265095), (2, 0.08454937147910728)]
>>> index = max(sublist, key=lambda tup: tup[1])[0]
然后,您可以使用map将其应用于主列表中的所有子列表:

>>> fn = lambda l : max(l, key=lambda tup: tup[1])[0]
>>> indices = map(fn, main_list)

大概每个列表都在一个更大的列表中?大概每个列表都在一个更大的列表中?非常感谢您的解决方案!非常感谢您的解决方案!