如何将两个列表转换为指定格式的字典列表?
解决方法
直接用zip()结合列表推导式就能搞定,核心是把zip配对后的每一组元素,映射成你需要的字典结构:
id_list = [1,2,3] text_list = [['a'], ['b'], ['c']] result = [{'ID': i, 'TEXT': t} for i, t in zip(id_list, text_list)] print(result)
运行后输出完全符合你的需求:
[{'ID':1,'TEXT':['a']},{'ID':2,'TEXT':['b']},{'ID':3,'TEXT':['c']}]
为啥之前用zip没成功?
大概率是没把配对后的元素正确封装成字典。比如要是直接写dict(zip(('ID','TEXT'), zip(id_list, text_list))),会把整个配对结果当成值,肯定不符合要求。正确的做法是遍历zip后的每一组元素,逐个生成字典,也就是上面列表推导式的逻辑。
另外提醒下:别用id当变量名,这是Python的内置函数,语法上不报错,但容易引发潜在问题,改成id_list这类名字更稳妥。
内容的提问来源于stack exchange,提问作者GLADOS
相关产品推荐
相关产品推荐

