如何用推导式将Python字典数组转换为Python字典?
用字典推导式实现更简洁的转换
当然可以!你已经用双层for循环搞定了需求,其实用字典推导式能写出更紧凑的代码,逻辑和你的循环完全一致,效率也不相上下(毕竟本质都是遍历所有的pin和对应分组)。
直接上实现代码:
my_array = [ { "pins": [1,2], "group": "group1" }, { "pins": [3,4], "group": "group2" } ] new_dict = {pin: d['group'] for d in my_array for pin in d['pins']}
简单解释下这个推导式:
- 外层遍历
my_array里的每个字典d - 内层遍历每个
d中pins列表的每个pin - 把每个
pin作为键,对应的d['group']作为值,直接构建新字典
如果想让代码结构更清晰(比如拆分多行),也可以写成这样:
new_dict = { pin: d['group'] for d in my_array for pin in d['pins'] }
这种写法和你原来的双层循环是等价的,只是把循环逻辑整合到了推导式里,代码更简洁易读。而且在Python里,推导式的性能和普通循环几乎没有差别,甚至在部分场景下会略快一点。
内容的提问来源于stack exchange,提问作者crusarovid
相关产品推荐
相关产品推荐

