我有一组节点
nodes = ["uno","dos","tres","cuatro","cinco","seis"]
还有一组边
edges = [("uno", "dos"),
("uno", "tres"),
("dos", "tres"),
("dos", "cuatro"),
("tres", "cuatro"),
("tres", "cinco"),
("cuatro", "cinco"),
("cuatro", "seis"),
("cinco", "seis")]
我已经定义了这些边的倒数
inverses =[(j,i) for (i,j) in edges]
现在我有了一组弧
arcs = edges + inverses
我的问题是,我想得到弧集合中的所有元素,这些元素有一个确定的第一个元素。就是这样
ArcsOut[i in nodes] = [(i,j) for (i,j) in arcs for i in nodes for j in nodes].
我想得到这样的东西。如果我要得到所有第一个分量为“uno”的弧,我想:
ArcsOut["uno"]= [("uno", "dos"),("uno", "tres"),("dos", "uno"),("tres", "uno")]
但我不知道我怎么能点这个。 提前谢谢!你知道吗
你可以用列表来完成。很好的一点是,您可以将元组解包与条件一起使用,使其非常简短,切中要害,同时具有可读性。你知道吗
相反,如果您想获得其中
i
或j
匹配特定节点名的所有边,可以这样做使用以下语法创建字典:
然后ArcsOut['unos']=所需输出。你知道吗
/*编辑*/
性能方面考虑使用defaultdict:
相关问题 更多 >
编程相关推荐