簡體   English   中英

通過給定索引在列表列表中查找具有最大值的列表並返回其第一個值

[英]Finding a list in a list of lists with the max value by given index and returning its first value

我有一個列表列表,我想通過列表中的一個索引找到最大值,在這種情況下 [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,因為它包含我的列表列表中 index[5] 的最大值?

使用max()函數,但通過一個參數來檢查特定的索引:

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

這將返回inputList中在索引 5 處具有inputList的子列表。如果要實際訪問該值,請將[5]添加到語句的末尾。

由於您似乎希望列表的 ID 具有最大第 5 個元素,因此將[0]添加到末尾:

max(inputList, key=lambda x: x[5])[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]]

考慮到 inputlist 中的所有列表,第 5 個索引處的最大值。 您可以將其用於任何(n)個成員列表。

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

一旦你到達:

這將為您提供該成員列表的第一個元素,該元素在所有其他成員列表中的第 5 個索引處具有最大/最大元素。請注意,即使多個成員列表在其第 5 個索引處具有相同的最大元素,這也將起作用

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

只是想給你一個更強大的解決方案。雖然上面給出的答案在我看來非常聰明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM