如何将字典更新的for循环转换为字典推导式?
将for循环转换为字典推导式
你可以直接用字典推导式实现和原循环完全一致的逻辑,代码更简洁,执行效率也相当(甚至略优):
vlan_by_networkid = { networkId: dashboard.appliance.getNetworkApplianceVlans(networkId)[0]['subnet'] for networkId in vlan_networks }
说明
- 推导式直接遍历
vlan_networks中的每个networkId,将其作为字典的键 - 对应的值通过调用
dashboard.appliance.getNetworkApplianceVlans(networkId)获取VLAN数据,再提取第一个元素的subnet字段,和原循环逻辑完全匹配 - 如果原本的
vlan_by_networkid字典已存在其他键值对,不想覆盖而是追加更新,可以这样写:vlan_by_networkid.update({ networkId: dashboard.appliance.getNetworkApplianceVlans(networkId)[0]['subnet'] for networkId in vlan_networks })
内容的提问来源于stack exchange,提问作者Happiman
相关产品推荐
相关产品推荐

