首页 > 解决方案 > 字典的性能优化更改

问题描述

我有一个字典列表,我有一个解决方案,如下所述:

[{"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彼得

标签: pythonpython-3.xlistdictionary

解决方案


从评论中,因为你总是只有 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'}

推荐阅读