在字典中列出表示节点和边的列表

时间:2017-04-16 03:21:31

标签: python list dictionary

我有这个输入:

data = {'A': [('B', 7), ('D', 5)], 
    'B': [('C', 8), ('D', 9), ('E', 7)],
    'C': [('E', 5)], 'D': [('E', 15), ('F', 6)]
    'E':[('F', 8), ('G', 9)], 
    'F':[('G', 11)]
}

我正在尝试将其转换为:

[ ("A", "B", 7), ("A", "D", 5),
  ("B", "C", 8), ("B", "D", 9), ("B", "E", 7),
  ("C", "E", 5),
  ("D", "E", 15), ("D", "F", 6),
  ("E", "F", 8), ("E", "G", 9),
  ("F", "G", 11)]

我似乎无法以这种方式使其发挥作用。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用('A',)+('B', 7)

迭代dict并将密钥添加到元组
>>> [(k,)+i for k,v in data.items() for i in v]
[('A', 'B', 7), ('A', 'D', 5), ('C', 'E', 5), ('B', 'C', 8), ('B', 'D', 9), ('B', 'E', 7), ('E', 'F', 8), ('E', 'G', 9), ('D', 'E', 15), ('D', 'F', 6), ('F', 'G', 11)]