如何使用python修复path中的循环?
我的图表中的计算周期有问题。 我想如何使用python修复path中的循环?,python,dictionary,graph,expand,Python,Dictionary,Graph,Expand,我的图表中的计算周期有问题。 我想 graph={('S','A'):('2','2'),('A','S'):('2','2'),('S','B'):('3','5'), ('B','S'):('3','5'),('S','C'):('3','6'),('C','S'):('3','6'), ('B','D'):('4','5'),('D','B'):('4','5'),('A','C'):('2','2'), ('D','C'):('3','4'),('C','D'):('3','4'),('
graph={('S','A'):('2','2'),('A','S'):('2','2'),('S','B'):('3','5'),
('B','S'):('3','5'),('S','C'):('3','6'),('C','S'):('3','6'),
('B','D'):('4','5'),('D','B'):('4','5'),('A','C'):('2','2'),
('D','C'):('3','4'),('C','D'):('3','4'),('T','C'):('5','8'),
('C','T'):('8','5'),('T','D'):('4','7'),('D','T'):('4','7'))
打印(图形)
目前,我们的一些,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,):('3','4'),('A','C'):('2','2')}
我想展开图形,但不想展开循环。在示例中:
vs='S'
vt='T'
('S','A'):('2','2'),('S','B'):('3',5'),('S','C'):('3','6')
('S','A','C'):('S','A')+('A','C')=('2','2')+('2','2')=
('4','4')('S','B','D'):('S','B')+('B','D')=('3','5')+('4','5'))= ('7','10')
('S','C','A'):不展开
('S','C','S'):不展开
('S','C','T'):('S','C')+('C','T')=('3','6')+('5','8'))= ('8','14')
('S','C','D'):('S','C')+('C','D')=('3','6')+('3','4'))= ('6','10')
('S','A','C'):('4','4')
('S','B','D'):('7','10')
('S','C','A'):不展开
('S','C','S'):不展开
('S','C','T'):('8','14')
('S','C','D'):('6','10')
你能帮我解决上面的问题吗?非常感谢..我不明白你的问题,但这是你想要的吗
graph = {('S','A'): ('2','2'), ('A','S'): ('2','2'), ('S','B'): ('3','5'),
('B','S'): ('3','5'), ('S','C'): ('3','6'), ('C','S'): ('3','6'),
('B','D'): ('4','5'), ('D','B'): ('4','5'), ('A','C'): ('2','2'),
('D','C'): ('3','4'), ('C','D'): ('3','4'), ('T','C'): ('5','8'),
('C','T'): ('8','5'), ('T','D'): ('4','7'), ('D','T'): ('4','7')}
sub = {}
for keys, values in graph.items():
for keys2, values2 in graph.items():
if keys[1] == keys2[0]:
key = keys + keys2[1:]
valueB= int(values[0]) + int(values2[0])
valueE = int(values[1]) + int(values2[1])
value = (str(valueB), str(valueE))
sub[key] = value
print(sub)
输出:
{('S', 'A', 'S'): ('4', '4'), ('S', 'A', 'C'): ('4', '4'), ('A', 'S', 'A'): ('4', '4'), ('A', 'S', 'B'): ('5', '7'), ('A', 'S', 'C'): ('5', '8'), ('S', 'B', 'S'): ('6', '10'), ('S', 'B', 'D'): ('7', '10'), ('B', 'S', 'A'): ('5', '7'), ('B', 'S', 'B'): ('6', '10'), ('B', 'S', 'C'): ('6', '11'), ('S', 'C', 'S'): ('6', '12'), ('S', 'C', 'D'): ('6', '10'), ('S', 'C', 'T'): ('11', '11'), ('C', 'S', 'A'): ('5', '8'), ('C', 'S', 'B'): ('6', '11'), ('C', 'S', 'C'): ('6', '12'), ('B', 'D', 'B'): ('8', '10'), ('B', 'D', 'C'): ('7', '9'), ('B', 'D', 'T'): ('8', '12'), ('D', 'B', 'S'): ('7', '10'), ('D', 'B', 'D'): ('8', '10'), ('A', 'C', 'S'): ('5', '8'), ('A', 'C', 'D'): ('5', '6'), ('A', 'C', 'T'): ('10', '7'), ('D', 'C', 'S'): ('6', '10'), ('D', 'C', 'D'): ('6', '8'), ('D', 'C', 'T'): ('11', '9'), ('C', 'D', 'B'): ('7', '9'), ('C', 'D', 'C'): ('6', '8'), ('C', 'D', 'T'): ('7', '11'), ('T', 'C', 'S'): ('8', '14'), ('T', 'C', 'D'): ('8', '12'), ('T', 'C', 'T'): ('13', '13'), ('C', 'T', 'C'): ('13', '13'), ('C', 'T', 'D'): ('12', '12'), ('T', 'D', 'B'): ('8', '12'), ('T', 'D', 'C'): ('7', '11'), ('T', 'D', 'T'): ('8', '14'), ('D', 'T', 'C'): ('9', '15'), ('D', 'T', 'D'): ('8', '14')}
我的代码只需搜索字典中的每个键,然后查找第一个键的结束字符并与第二个键的开始字符进行比较。如果相同,则将其合并。然后将这些字符的值合并并存储在一个集合中
我也在学习,但我希望能尽力帮助大家,也许有一些专家可以帮助我们