【问题标题】:Python-Accessing values of dictionary using lambdaPython-使用 lambda 访问字典的值
【发布时间】:2022-01-17 17:32:30
【问题描述】:

给定字典:

dict=[ {'Confirmed_cases' : {'Brazil' : 1600,'Indonesia' : 2400}, 
        'Death_cases': {'Brazil' :30, 'Indonesia' : 68}]

如何使用lambdaconfirmed_cases 获取1600 值?基于user input = Brazil

【问题讨论】:

  • 使用 lambda?只用钥匙怎么样? d[0]['Confirmed_cases']['Brazil']
  • 1.不要使用 python 'reserved words' 作为变量 2 的名称。在您的示例中,dict 是一个列表,它作为 dict 作为其唯一元素。
  • 请参阅“How to Ask”以及链接页面和“MCVE”。我们感谢您可能是新人,但我们确实希望您为此付出努力的证据。你在哪里搜索的?为什么没有帮助?如果是这样,您编写的用于测试所学内容的代码在哪里?如果你不写代码,为什么不呢?如果你这样做了,说明你遇到的问题的最少代码是什么,以及问题的解释,以及最少的输入数据和预期的结果?没有它就很难为您提供帮助。

标签: python python-3.x list


【解决方案1】:

这应该可行:

data = [{'Confirmed_cases' : {'Brazil' : 1600,'Indonesia' : 2400}, 'Death_cases': {'Brazil' :30, 'Indonesia' : 68}}]
confirmed_cases = lambda x: data[0]['Confirmed_cases'][x]
print(confirmed_cases('Brazil')) # > 1600

不确定将字典命名为 dict 是否是一个好习惯。我会想象它是一个保留名称。

希望我能帮上忙! :)

【讨论】:

  • 哇,谢谢,它有效!但我有一点改变,因为我在数据 [0] 上遇到了一些错误(keyerror),然后我删除了 [0]。所以最后的修复是: lambda x: data['Confirmed_cases'][x].
【解决方案2】:

如果你想要 lambda,这可能看起来很奇怪但有效:

list_dict=[{'Confirmed_cases' : {'Brazil' : 1600,'Indonesia' : 2400}, 'Death_cases': {'Brazil' :30, 'Indonesia' : 68}}]

def get_value(list_dict, key, country):
    return list_dict.get(list(filter(lambda x: x == key,list_dict))[0]).get(country)

x = get_value(list_dict[0], 'Confirmed_cases', 'Brazil')

您可以用用户输入替换硬编码的字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多