我有一个字符串和列表的搭配词典:“更简单”的方法来这个list解析+产品()组合
sample_dict = {'numbers': [1, 2, 3], 'ref': 'some text'}
目标是结合和“扁平化”成个人字典的迭代这将被通过芹菜作为参数一组的计划任务:
# end goal:
[{'numbers': 1, 'ref': 'some text'},
{'numbers': 2, 'ref': 'some text'},
{'numbers': 3, 'ref': 'some text'}]
我试图用传统的循环来保持代码的简洁供以后适应或bugfixing写的,但我不能工作了方式可以访问所有必要的嵌套变量。
结果是使用几个相对复杂的列表内涵:所以
raw_vals = [[(i,v)] if isinstance(v,str) else ([(i,b) for b in v]) for i,v in sample_dict.items()]
end_goal = [dict(i) for i in product(*raw_vals)]
问:有没有更详细的,但可能不太神秘的方式来获得相同的结果,使用标准的循环或类似的?我知道这可能会引发关于可读性与LOC的争论,但如果可以的话,尽量忽略它。
'有没有更详细的,但可能不太神秘的方式来获得相同的结果,使用标准的循环或类似'当然?有,你总是可以在for循环中做到这一点。 – Netwave
我曾尝试@DanielSanchez,但无法解决如何一次访问主字典中的每个项目。例如,如果您遍历每个键,那么您一次只能访问一个键,而无法返回合并的词典。如果您可以回复考虑的解决方案,我很乐意。 –