簡體   English   中英

如何從列表及其索引中找到最大元素?

[英]How to find maximum element from a list and its index?

我有一個帶有有序詞典的列表。 這些有序字典有不同的大小,也可以有相同的大小(例如,10 個字典的長度可以是 30,而 20 個字典的長度可以是 32)。 我想從列表中找到字典的最大項目數。 我已經嘗試過了,這讓我得到了正確的最大長度:

maximum_len= max(len(dictionary_item) for dictionary_item in item_list)

但是我怎樣才能找到給出 maximum_len 的字典字段呢? 假設 maximum_len 是 30,我還想打印 30 個鍵的字典。 它可以是任何大小為 30 的字典,而不是特定的字典。 我只需要那個字典的鍵。

那么你總是可以使用過濾器:

output_dics=filter((lambda x: len(x)==maximum_len),item_list)

然后你有所有滿足條件的字典,選擇一個隨機的或第一個

不知道這是否是最簡單或最優雅的方法,但您可以編寫一個簡單的 function ,它返回 2 個值,即您已經計算的 max_length 以及您可以通過 .index 方法和 max_length 獲得的 dict您正在搜索的 object。

我在談論這樣的事情:

    def get_max(list_of_dict):
        plot = []
        for dict_index, dictionary in enumerate(list_of_dict):
            plot.append(len(dictionary))

        return max(plot), list_of_dict[plot.index(max(plot))]

    maximum_len, max_dict = get_max(test)

對其進行了測試,適用於我的情況,盡管我剛剛為自己制作了一個只有 5 個不同長度的字典的測試列表。

編輯:將變量“dict”更改為“dictionary”以防止它從外部 scope 陰影。

暫無
暫無

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

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