我有一个从region1到region6的连接(1-> 6) 但我想获得二阶连接。换句话说:从区域1到区域2的连接,然后从区域2到区域6的连接。 (即1-> 2、2-> 6)
我要应用以下限制:我不希望将同一区域(例如region1到region1)(即 1-> 1 ,1-> 6)的连接列出为二阶连接。
注意:Region1至Region6与Region6至Region1相同。另外,我希望连接按降序列出。因此,如果存在从区域1到区域0然后从区域0到区域6的二阶连接(1-> 0,0-> 6)。我希望它被更正变成region0到region1,然后变成region0到region6(0-> 1,0-> 6)。
此外,一旦完成所有二阶连接,我希望将其乘以得到region0到region1的连接,然后是region0到region6的连接(即0-> 1,0-> 6)。
完成后,我想将其与该问题开头的一阶连接(1-> 6)进行比较。然后,我希望该程序具有更高的价值。并保存。
这是我到目前为止所拥有的:
from itertools import combinations
a=print(list(combinations(range(7),2)))
print(list(product(a, repeat=2))
我得到的输出是:[[0,1),(0,1)],[(0,1),(0,2)],[(0,1),(0,3)]等
这不是我想要的
任何帮助将不胜感激。
答案 0 :(得分:0)
您可以从itertools开始。组合模块似乎已排序,没有重复的元素。
from itertools import combinations
print(list(combinations(range(7),2)))
Itertools是Python包含的软件包的一部分,并且在可迭代领域非常出色。阅读https://docs.python.org/3/library/itertools.html
除组合以外,还有乘积(笛卡尔积)和排列,这些排列给出所有可能的顺序,没有重复的元素。