在python中重新组合列表/字典

2024-03-29 10:56:43 发布

您现在位置:Python中文网/ 问答频道 /正文

this question继续

我在python中有以下列表,我想将它们重新组合成字典/列表:

fromfruits = { "names" : ['banana','grapefruit','apple'] , "colors" : ['yellow','pink','green'], ... }

^{pr2}$

最好的方法是什么这样我就能在fromfruits中列出n个属性?在

请帮忙!:)


Tags: 方法apple列表字典namesgreenthisbanana
3条回答

由于现在的要求更加笼统:

>>> from itertools import izip
>>> ff = {'colors': ['yellow', 'pink', 'green'], 'names': ['banana', 'grapefruit', 'apple'], 'blah': ['a','b','c']}

>>> [dict(izip(ff.iterkeys(), v)) for v in izip(*ff.itervalues())]
[{'blah': 'a', 'colors': 'yellow', 'names': 'banana'},
 {'blah': 'b', 'colors': 'pink', 'names': 'grapefruit'},
 {'blah': 'c', 'colors': 'green', 'names': 'apple'}]

因为keys和{}的顺序相同(假设没有对字典进行干预性修改)。在

[dict((x, fromfruits[x][n]) for x in fromfruits.keys())
  for n in range(len(next(fromfruits.itervalues())))]

根据需要进行优化。在

从“names”到“name”这样的键很难做到,教程序如何进行正确的英语单音化。。。所以我重新命名了输入中的键:

ff = dict(name=['banana','grapefruit','apple'], color=['yellow','pink','green'], 
          yummy=[True,False,True])

您可以再次使用zip解决此问题:

^{pr2}$

相关问题 更多 >