查找列表中的最大列表并返回单独的列表值python

时间:2017-10-26 01:19:16

标签: python list

所以我有一个包含多个并行对象列表的列表,我想在列表中找到一个索引的最大值,在本例中为[5]。

一旦获得最大值,我如何找到发生的位置并返回该列表的第一个元素?

例如,inputlist = [[70, 'Cherry St,', 43.684371, -79.316756, 23, 9, 14, True, True], [78, 'Cow Rd', 43.683378, -79.322961, 15, 13, 2, True, False]]

如何让我的函数返回78,因为它包含列表列表中索引[5]的最大值?

2 个答案:

答案 0 :(得分:1)

使用max()函数,但通过参数检查特定索引:

max(inputList, key=lambda x: x[5])

这将返回inputList中索引5处具有最大值的子列表。如果要实际访问此值,请将[5]添加到语句的末尾。

由于您似乎希望列表的ID具有最大的第5个元素,因此请在末尾添加[0]

max(inputList, key=lambda x: x[5])[0]

答案 1 :(得分:0)

这是你可以做的,使用列表理解两次

inputlist = [[70, 'Cherry St,', 43.684371, -79.316756, 23, 9, 14, True, True],
[78, 'Cow Rd', 43.683378, -79.322961, 15, 13, 2, True, False]]

第5个索引的最大值,考虑输入列表中的所有列表。您可以将此用于任何(n)no成员列表。

value_5th = max([listt[5] for listt in inputlist])

到达目的地后:

这将为您提供该成员列表的第一个元素,该列表在所有其他成员列表中的第5个索引处具有最大/最大元素。请注意,即使多个成员列表在其第5个索引处具有相同的max元素,这也将起作用

Your_ans = [ listt[0] for listt in inputlist if value_5th in listt]

试着给你一个更强大的解决方案。虽然上面给出的答案在我看来非常聪明。