【问题标题】:Dictionary comprehension python字典理解python
【发布时间】:2022-11-22 15:00:25
【问题描述】:

我有以下字典:

cars_info_with_colors = {
    "red": {"audi": [105, 55], "toyota": [105, 66]}, 
    "blue": {"renault": [102, 33], "mercedes": [100, 80]}
}

我只想拥有嵌套字典,我可以这样做:


removed_colors_dict = {}

for car in cars_info_with_colors:
    cars_info_without_colors.update(cars_info_with_colors[car])

# output:

removed_colors_dict = {
    'audi': [105, 55],
    'toyota': [105, 66],
    'renault': [102, 33],
    'mercedes': [100, 80]
}

我想用字典理解来做,但我失败了很多次。 如果有人能告诉我该怎么做,我将非常感激,非常感谢!祝你有美好的一天! (对不起语法和错误的解释!)

那是我尝试过的一些方法:

{k: v for k, v in cars_with_colors.values}
{k: v for k, v in cars_with_colors for v in cars_with_colors.values]

【问题讨论】:

    标签: dictionary dictionary-comprehension


    【解决方案1】:

    这会起作用。

    cars_info_with_colors = {
        "red": {"audi": [105, 55], "toyota": [105, 66]}, 
        "blue": {"renault": [102, 33], "mercedes": [100, 80]}
    }
    
    result = {k2:v2 for k1,v1 in cars_info_with_colors.items() for k2,v2 in v1.items()}
    #         k1='red' v1={'audi':[...], ...}        k2 ='audi',v2=[105,55]
    
    print(result)
    

    因为我们想要字典的键和值是顶级 (key,value) 组合的值...您需要在理解中运行另一个 for 循环以提取和展平这些值。

    输出:

    {'audi': [105, 55],
     'toyota': [105, 66],
     'renault': [102, 33],
     'mercedes': [100, 80]}
    

    【讨论】:

      猜你喜欢
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      • 2013-07-28
      • 2011-06-06
      • 2018-12-22
      • 2020-10-19
      相关资源
      最近更新 更多