将dict的键和值作为字符串x次输出到列表,具体取决于int值

2024-04-29 03:50:15 发布

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

我将一个dict的键和值输出到一个列表中,以便进行评估

示例字典如下所示:

gold_network = {'Anakin': {'All Jedi': {'fear': 1},
                        'Jedi': {'fear': 4},
                        'Mace': {'anticipation': 1, 'fear': 1},
                        'Obi-Wan': {'joy': 2, 'surprise': 2},
                        'Qui-Gon': {'fear': 2,
                                    'joy': 1,
                                    'sadness': 4,
                                    'surprise': 3,
                                    'trust': 5},
                        'The Council': {'anticipation': 1, 'fear': 1},
                        'Yoda': {'anticipation': 1, 'surprise': 1},
                        'young boy': {'sadness': 3, 'trust': 1}},
             'Jedi': {'Anakin': {'joy': 2}},
             'Obi-Wan': {'Anakin': {'joy': 2, 'trust': 2}},
             'Qui-Gon': {'Anakin': {'anger': 2, 'joy': 2, 'trust': 1}},
             'Yoda': {'Anakin': {'joy': 3}},
             'young boy': {'Anakin': {'joy': 2, 'trust': 3}}}

我的代码如下所示:

gold_list_complete = list('{}-{}-{}'.format(k, k1, k2) for k, v in\
                          gold_network.items() for k1,v1 in v.items()\
                          for k2 in v1.keys())

期望的输出看起来很好,例如:[Anakin-All Jedi-fear,...]

但我希望能够输出该格式的次数与最后一个dict的最后一个int-值的次数相同

例如,对于关系Anakin-Jedi-fear,其中int4[Anakin-Jedi-fear, Anakin-Jedi-fear, Anakin-Jedi-fear, Anakin-Jedi-fear, ...#other relations]将是该关系列表的所需输出

我试着将整行代码相乘,但它给了我一个错误消息,即没有定义值

关于向代码中添加什么来输出关系作为它的最后一个int值,有什么想法吗

提前谢谢


Tags: 代码in列表for关系dictintsurprise
1条回答
网友
1楼 · 发布于 2024-04-29 03:50:15

好吧,代替for k2 in v1.keys(),你可以做for k2,v2 in v2.items(),然后重复v2

list('{}-{}-{}'.format(k, k1, k2)
     for k, v in gold_network.items()
     for k1,v1 in v.items()
     for k2,v2 in v1.items()
     for _ in range(v2))

相关问题 更多 >