我是Python的新手,并且花了一段时间没有编程,所以非常感谢你的帮助。
我必须在给定的数据结构中查找所有n个长度的循环 - 我现在正在使用列表但是也许dict可以完成工作 -
第一行中的每个元素直接映射到它下面的元素,如果重复使用映射导致返回初始值,则形成一个循环。 假设我有:
A=[[2,3,4,5,6,7,8,9,10],
[6,3,6,1,8,8,4,1,9]]
然后周期为(3)
和(4,6,8)
或
A=[[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
[17, 7, 7, 3, 12, 18, 1, 8, 20, 1, 6, 13, 4, 17, 4, 13, 5, 10]]
周期为(3,7,18,5)
,(6,12)
和(13)
我真的被困住了,所以提前感谢你的帮助。
答案 0 :(得分:0)
谢谢你们! 这很简单,我只是看不到它...... 将A中的元素排列成2列(成对A [0] [i],A [1] [i])并将其提供给networkx对象,如
>>>G = nx.DiGraph(A)
>>>list(nx.simple_cycles(G))
>>>[[12, 6], [5, 3, 7, 18], [13]]
生成输出。