【问题标题】:How to get second-order connections using ipython with the following restrictions?如何使用具有以下限制的 ipython 获得二阶连接?
【发布时间】:2019-01-14 15:28:05
【问题描述】:

我有一个从 region1 到 region6 (1->6) 的连接 但我想获得二阶连接。换句话说:从区域 1 到区域 2 的连接,然后从区域 2 到区域 6。 (即 1->2、2->6)

我想应用以下限制:我不希望将同一区域的连接,例如 region1 到 region1(即 1->1, 1->6)列为二阶连接。

注意:区域 1 到区域 6 与区域 6 到区域 1 相同。此外,我希望按降序列出连接。因此,如果存在从 region1 到 region0 再从 region0 到 region6 的二阶连接 (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)] 等.

这不是我想要的

任何帮助将不胜感激。

【问题讨论】:

    标签: python ipython combinations itertools


    【解决方案1】:

    您可以从 itertools 开始。组合模块似乎已排序,没有重复的元素。

    from itertools import combinations
    
    print(list(combinations(range(7),2)))
    

    Itertools 是 Python 中包含的包的一部分,在可迭代领域非常出色。阅读https://docs.python.org/3/library/itertools.html

    除了组合之外是产品,它是笛卡尔积和排列,它给出了所有可能的顺序,没有重复的元素。

    【讨论】:

    • 感谢您的帮助。但我不想将所有组合相乘。我想将所有二阶连接相乘。这意味着如果我正在查看将 region2 连接到 region4 的区域(中间的第三个区域)......因此,例如,我想要 (region2->4) 的二阶连接是: (2->3,3- >4) 或 (2->1, 1->4)。我希望这是有道理的@Prayson W. Daniel
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    相关资源
    最近更新 更多