首页 > 解决方案 > 发现一个值中有多少个列表

问题描述

my_dict = {"fruits": ["apple", "orange", "grape", "maracuya", "pineapple"],
           "countries": [["India", "China", "Brazil", "Lesotho", "Nepal"], 
                         ["Spain", "Italy", "Japan", "Indonesia", "Russia"], 
                         ["Germany", "Austria", "Paraguay", "New Zealand", "Peru"],
                         ["Australia", "Colombia", "Belice", "Swaziland"]],
           "colors": [["blue", "black", "green", "yellow", "red"],
                      ["purple", "pink", "white", "lila"]]}

有没有办法知道我在每个键下有多少个列表?例如:在关键字“水果”下我只有一个,在“国家”下我有 4 个

我尝试过的主要是:

for key, values in my_dict.items():
    print(len(values))

这没有用

for key in my_dict.values():
   print(len(key))

也失败了

标签: python-3.xdictionarykey-value-store

解决方案


我的第一个问题是您是否也想将水果列表放入另一个列表中。那么所有案例的结构都是相同的,解决方案很简单:

{key: len(value) for key, value in my_dict.items()}

否则,如果你想坚持你发布的数据结构,你可以这样做:

{key: len(value) if isinstance(value[0], list) else 1 for key, value in my_dict.items()}

这将导致:

{'colors': 2, 'countries': 4, 'fruits': 1}

我必须承认,这个解决方案中有很多假设。如果您想在任何地方查找所有列表,那将使其变得更加复杂。


推荐阅读