【发布时间】:2019-11-28 02:56:37
【问题描述】:
我正在尝试查找与字符串相关的所有元组,而不仅仅是与之匹配。 这是我做的:
from itertools import chain
data = [('A','B'),('B','C'),('B','D'),('B','F'),('F','W'),('W','H'),('G','Z')]
init = 'A'
filtered_init = [item for item in data if item[0] == init or item[1] == init]
elements = list(dict.fromkeys([ i for i in chain(*filtered_init)]))
elements.remove(init)
dat = []
for i in elements:
sync = [item for item in data if item[0] == i or item[1] == i]
dat.append(sync)
print(dat)
结果是:
[('A', 'B'), ('B', 'C'), ('B', 'D'), ('B', 'F')]
但是,它只包含 A-B 相关的级别。
我要查找的是与init 字符串相关的所有元组,如下图所示:
换句话说,[('A','B'),('B','C'),('B','D'),('B','F'),('F','W'),('W','H')]
它是找到所有可以到达init 的边。
我怎样才能得到它们?
【问题讨论】:
-
你的意思是,这是一个有向图(或者可能是一棵树),并且你想找到从
A到达的所有边? -
是的!我想我应该澄清一下帖子。谢谢你的提问:)
-
你只想跟随
(from, to)方向的边,还是无向图? -
只是元组格式的边缘 :)
-
我的意思是,例如,如果有一个元组
('Z', 'H'),那会使'Z'也与'A'相关,还是因为顺序错误而不算数?
标签: python graph-theory graph-algorithm