如何在for循环中存储字典

Ahm*_*lin 0 python dictionary for-loop store

我想将数据值存储在我的 dict{} 字典中,但出现错误。

mydict= {}
for entity in entities:
     if entity.entity_id.startswith('sensor'):
         list = remote.get_state(api, entity.entity_id)
         data = {list.attributes['friendly_name'] : list.state}
         for key, val in data.items():
             mydict+= {key:val}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误。

mydict+= {key:val}
TypeError: unsupported operand type(s) for +=: 'dict' and 'dict'
Run Code Online (Sandbox Code Playgroud)

ili*_*lim 5

与人们直观的想法相反,正如错误所示,类型&+=不支持运算符。字典与列表略有不同,并且不像某种连接运算符那样工作。dictdict+=

+=但是,为什么不尝试更新内部 for 循环作用域,而不是使用运算符,如以下代码片段所示?

mydict= {}
for entity in entities:
    if entity.entity_id.startswith('sensor'):
        list = remote.get_state(api, entity.entity_id)
        data = {list.attributes['friendly_name'] : list.state}
        for key, val in data.items():
            mydict[key] = val
Run Code Online (Sandbox Code Playgroud)

或者,您可以进行批量更新,如下所示。

mydict= {}
for entity in entities:
    if entity.entity_id.startswith('sensor'):
        list = remote.get_state(api, entity.entity_id)
        data = {list.attributes['friendly_name'] : list.state}
        mydict.update(data)
Run Code Online (Sandbox Code Playgroud)