使用理解创建包含列表值的字典

2024-09-29 05:25:28 发布

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

在python中,我希望创建一个字典,其中的键是字符串,值是列表。我搞不懂的是,如何将元素附加到这些列表中。例如,考虑我的以下尝试:

{c: [].append(x[0]) for x in g16.nodes(data=True) for c in colors if x[1]['color'] == c}

nodes(data=True)给出了一个对列表,其中第一个元素是一个字符串,第二个元素是一个只指定颜色的字典。如前所述,我希望将此结构制作成字典,其中键提供颜色,值是具有此颜色的字符串列表。在

如果你有解决办法,或者有更好的办法,请告诉我!在

谢谢你的帮助。在


Tags: 字符串intrue元素列表fordataif
2条回答

用一本字典来理解是不可能的。如果您可以尝试一下,可能会更容易:

假设g16.nodes(data=True)类似于

[('key1', {'color': 'black'}), ('key2', {'color': 'green')]

并且color键存在,您可以尝试以下操作:

^{pr2}$

您正在尝试这样做:

{c: [x[0] for x in g16.nodes(data=True) if x[1]['color'] == c] for c in colors}

但是它不是很有效,因为你要为每种颜色循环一次g16.nodes(data=True)

这样比较好

^{pr2}$

如果您知道k总是在colors中,您可以简化为

d = {c: [] for c in colors}
for x in g16.nodes(data=True):
    d[x[1]['color']].append(x[0])

相关问题 更多 >