Python:将键对应列表的字典转换为指定键值对字典列表
解决方法:字典结构转换
没问题,这个需求用Python的循环或者列表推导式就能轻松实现,下面给你两种方案:
方案1:常规循环写法(适合新手理解)
先定义你的原始字典,然后遍历每个键值对,逐个生成目标格式的字典:
# 原始数据 original_data = {'FOO': [7, 11], 'BAR': [42, 0]} # 用来存储转换后的结果 converted_list = [] # 遍历原始字典的每个键值对 for name, count_values in original_data.items(): converted_dict = { 'name': name, 'count1': count_values[0], # 取列表第一个元素 'count2': count_values[1] # 取列表第二个元素 } converted_list.append(converted_dict) # 输出你想要的格式 print(', '.join(str(item) for item in converted_list))
方案2:列表推导式(更简洁高效)
如果熟悉Python的列表推导式,可以一行搞定转换,代码更紧凑:
original_data = {'FOO': [7, 11], 'BAR': [42, 0]} converted_list = [{'name': key, 'count1': vals[0], 'count2': vals[1]} for key, vals in original_data.items()] # 输出目标格式 print(', '.join(str(item) for item in converted_list))
运行上面任意一段代码,都会得到你想要的结果:
{'name': 'FOO', 'count1': 7, 'count2': 11}, {'name': 'BAR', 'count1': 42, 'count2': 0}
小提醒:这里默认原始字典里的每个值都是长度为2的列表,如果有长度不一致的情况,建议加个判断逻辑避免索引错误哦!
内容的提问来源于stack exchange,提问作者screwed
相关产品推荐
相关产品推荐

