[英]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.