【发布时间】:2013-11-20 06:37:47
【问题描述】:
在 python 中,我希望使用带有字符串键和列表值的理解来创建字典。我无法弄清楚的是如何将元素附加到这些列表中。例如考虑我的以下尝试:
{c: [].append(x[0]) for x in g16.nodes(data=True) for c in colors if x[1]['color'] == c}
g16.nodes(data=True) 给出一个对列表,其中第一个元素是字符串,第二个元素是只指定颜色的字典。如前所述,我希望将这个结构变成一个字典,其中键给出颜色,值是具有这种颜色的字符串列表。
如果您有解决方案,或者有更好的方法,请告诉我!
感谢大家的帮助。
【问题讨论】:
-
list.append返回无,因此所有字典值都将为无。 -
使用循环,而不是理解。你冒着写出难以理解的理解的风险!
-
经验法则,如果你必须在理解中变异,那么理解不是解决方案。
-
我相信
if x[1]['color'] in colors应该足够了,colors可以是一个可以提供更快查找的集合。
标签: python list dictionary dictionary-comprehension