簡體   English   中英

查找元組中最小元素的最大值

[英]Find maximum value of minimum elements in tuple

如果我有清單

[[209, 34], [50, 170], [197, 32], [75, 156], [176, 51], [54, 141], [205, 19], [35, 173]]

如何查找具有最大最小元素的子列表?

也就是說,在上述情況下,它的索引為[3] - [75,156]因為它的最小值大於所有其他元素的最小值。

它應該很簡單:

max(list_of_iterables, key=min)

即:

>>> lst = [[209, 34], [50, 170], [197, 32], [75, 156], [176, 51], [54, 141], [205, 19], [35, 173]]
[[209, 34], [50, 170], [197, 32], [75, 156], [176, 51], [54, 141], [205, 19], [35, 173]]
>>> max(lst, key=min)
[75, 156]

max (和min )功能通過一個可迭代行走,並在可迭代挑選出的最大(或最小的各元素進行比較工作min )元件。 問題是比較的事物是應用於單個元素的key功能的結果。 默認情況下, key功能只是身份功能-但可以是您想要的任何功能。 在這種情況下,我的關鍵功能是min ,它挑選出子列表的最小值。 然后,我們根據子列表的最小值比較子列表,然后選擇max的子列表,這正是您的問題所要的。

您可以使用sorted功能。

>>> lst = [[209, 34], [50, 170], [197, 32], [75, 156], [176, 51], [54, 141], [205, 19], [35, 173]]
[[209, 34], [50, 170], [197, 32], [75, 156], [176, 51], [54, 141], [205, 19], [35, 173]]
>>> sorted(lst, key=min, reverse=True)
[[75, 156],
 [54, 141],
 [176, 51],
 [50, 170],
 [35, 173],
 [209, 34],
 [197, 32],
 [205, 19]]

key=min表示對列表進行排序時將使用min函數。

然后可以使用index方法找到值的index 喜歡:

>>> lst.index([75, 156])
3

暫無
暫無

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

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