簡體   English   中英

獲取包含其他列表的列表中值的最大長度

[英]Get max length of value inside a list which contains other lists

我得到了一個包含鍵和其他列表的列表。 我想創建一個函數來檢查列表中的最長值(字符串)。 它應該給我最長的字符串作為數字。 我在互聯網上沒有發現任何有用的東西。 只需要檢查帶有鍵(值)的字符串。 輸出:它應該計算最長值(字符串)的每個字符。

希望您能夠幫助我。

列表:

 [{'name': 'title', 'value': 'titel{TM} D3', 'is_on_label': 1},
 {'name': 'DK in', 'value': '24V max 2.5A', 'is_on_label': 1,
 'id_configuration': 79,

 'options': [{'value': '30V max 3A', 'id_configuration_v': '1668'},
             {'value': 'none', 'id_configuration_v': '1696'}]}]

功能:

def checkLenFromConfigs(self, configs):
   max_lenght = max(map(len, configs))
   return max_lenght
 

您可以遞歸搜索數據結構中的所有values

data = [{
        "name": "title",
        "value": "titel{TM} D3",
        "is_on_label": 1
    },
    [{
        "name": "title",
        "value": "titel{TM} D3",
        "is_on_label": 1,
        "sub_options": [
            {
                "value": "30V max 3A",
                "id_configuration_v": "1668"
            },
            {
                "value": "none none none none",
                "id_configuration_v": "1696"
            }
        ]
    }], 
    {
        "name": "DK in",
        "value": "24V max 2.5A",
        "is_on_label": 1,
        "id_configuration": 79,
        "options": [{
                "value": "30V max 3A",
                "id_configuration_v": "1668"
            },
            {
                "value": "none",
                "id_configuration_v": "1696"
            }
        ]
    }
]



def recur(data, count):
    if isinstance(data, list):
        for item in data:
            count = recur(item, count)
    elif isinstance(data, dict):
        for k, v in data.items():
            if k == 'value':
                count.append(len(v))
            else:
                count = recur(v, count)
    return count

result = recur(data, [])
print(max(result))

出去:

19

暫無
暫無

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

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