python - 字典的性能优化更改
问题描述
我有一个字典列表,我有一个解决方案,如下所述:
[{"A1":"B1", "C1":"D1"},{"A2":"B2", "C2":"D2"},....]
预期的输出将是这样的字典
{
"B1":"D1",
"B2":"D2",
...
}
我目前的程序是获取一本字典并为单个字典创建 2 个条目
输入:
{"A1":"B1", "C1":"D1"}
输出:
{"B1":"D1"}
其中“A1”和“C1”在我的方法中可配置:
def method(input_dictionary, default_key_from_dict, default_value_from_dict):
single_dictionary[input_dictionary[default_key_from_dict]] = input_dictionary[default_value_from_dict]
后来我执行以下操作:
def function(dict_list):
single_key_value_dictionary_list = list(map(convert_two_entries_dictionary_to_one_by_value, dict_list))
global_dict = reduce(lambda a, b: dict(a, **b), single_key_value_dictionary_list)
return global_dict
我问自己是否有更好的解决方案,我有生成器的想法,但我不确定是否值得考虑?对此有何评论?
更新 列表的每个条目中只有 2 个键作为字典。只有 2 把钥匙。
BR彼得
解决方案
从评论中,因为你总是只有 2 个键。您可以使用dict.update
.
inp=[{"A1":"B1", "C1":"D1"},{"A2":"B2", "C2":"D2"}]
out={}
for d in inp:
out.update((d.values(),))
out
# {'B1': 'D1', 'B2': 'D2'}
推荐阅读
- javascript - React - 内部的 HTML 元素到字符串
- sql - 在 SQL 中使用 Case When 更改列
- mysql - 在转换为不同格式时,自动使用其他列中的 DATETIME 填充列
- excel - 反向查找和连接
- reactjs - 为什么我的反应路由器调用 api 两次?
- javascript - 如何更改对象数组中的所有函数而不以任何方式直接修改它们?
- reporting-services - SSRS 动态订阅 - 如何在文件名中使用参数
- javascript - React-Select True False From Map
- c++ - Qt UDP Socket:如何连续发送请求并获得响应
- performance - NGINX 将 http 重定向到 https(减少首字节时间的问题)