如何使用python修复路径中的循环?

问题描述 投票:-1回答:1

我的图表中的计算周期有问题。我想要

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')}

print(graph)

{('S', 'A'): ('2', '2'), ('S', 'C'): ('3', '6'), ('T', 'C'): ('5', '8'), ('A', 'S'): ('2', '2'), ('D', 'T'): ('4', '7'), ('C', 'D'): ('3', '4'), ('D', 'B'): ('4', '5'), ('S', 'B'): ('3', '5'), ('C', 'T'): ('8', '5'), ('C', 'S'): ('3', '6'), ('B', 'S'): ('3', '5'), ('T', 'D'): ('4', '7'), ('B', 'D'): ('4', '5'), ('D', 'C'): ('3', '4'), ('A', 'C'): ('2', '2')}

我想扩展图表但不是周期。例如:vs = 'S' vt = 'T'

  1. ('S', 'A'): ('2', '2'), ('S', 'B'): ('3', 5'), ('S', 'C'): ('3', '6')
  2. 扩大: ('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') : not expand ('S', 'C', 'S') : not expand ('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')
  3. 产出(预期): ('S', 'A', 'C') : ('4', '4') ('S', 'B', 'D') : ('7', '10') ('S', 'C', 'A') : not expand ('S', 'C', 'S') : not expand ('S', 'C', 'T') : ('8', '14') ('S', 'C', 'D') : ('6', '10')

你可以帮我解决上面的问题吗?非常感谢你..

python dictionary graph expand
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.