根据 int 值将字典的键和值作为字符串 x 次输出到列表

Outputting keys and values of dict of dicts to a list as strings x-times depending on an int value

我正在将一个字典的键和值输出到一个列表中以供评估。

示例字典如下所示:

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,...]

但我希望能够输出与最后一个字典的最后 int 值一样多的格式。

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

我尝试乘以整行代码,但它给了我错误消息,即值未定义。

关于将什么添加到代码以输出关系作为其最后一个 int 值的任何想法?

提前致谢!

好吧,您可以 for k2,v2 in v2.items() 代替 for k2 in v1.keys() 并重复 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))