我有以下字典
{1: [10], 2: [20, 30]}
并想转换成下面这样
{1:[{label:10,value:10}], 2:[{label:20,value:20}, {label:30,value:30}]}
答案 0 :(得分:1)
您可以使用列表理解:
d = {1: [10], 2: [20, 30]}
{k: [{'label': v, 'value': v} for v in vs] for k, vs in d.items()}
输出:
{1: [{'label': 10, 'value': 10}],
2: [{'label': 20, 'value': 20}, {'label': 30, 'value': 30}]}
答案 1 :(得分:1)
尽管 perl answer 使用列表推导式并在一行中完成,但我认为它没有达到您想要的格式。 我,就我自己而言,我无法使用 dict comprehension 来做到这一点,所以我无法在一行中做到这一点,但我做到了:
old_dict = {1: [10], 2: [20, 30]}
new_dict = {}
for key, value in old_dict.items():
new_dict[key] = [{"label":x, "value":x} for x in value]
输出应该是:
{1: [{'label': 10, 'value': 10}], 2: [{'label': 20, 'value': 20}, {'label': 30, 'value': 30}]}