我需要计算允许重复连接和自连接的网络中唯一连接的数量。
前面的问题都集中在查找单个平面数组中的重复项或删除它们。我不知道如何将这些技术应用到以下几个方面:
source = [1, 6, 1, 8, 7, 5, 0, 3, 8, 4, 5, 6, 5, 0, 6, 2, 2, 1, 6, 4]
destination = [8, 8, 8, 7, 5, 1, 8, 0, 8, 2, 4, 5, 7, 3, 5, 7, 2, 0, 5, 5]网络的连接用2个python数组表示。例如,节点1连接到节点8,节点8连接到节点6,依此类推。这些连接是定向的。这个特定的网络有9个节点和20个连接,但其他网络有更多。
def countUnique(source, destination)应该返回的是唯一连接的整数计数。
发布于 2019-04-10 06:25:22
len(set(zip(source, destination)))
zip(source, destination)返回source和destination对
set(...)返回仅包含唯一元素的Python集
len(...)返回设置的长度-所有唯一边的数量
另外,我建议你使用一些好的Python图形库,比如networkx。这样的库有大量用于图形处理的有用函数和算法。
发布于 2019-04-10 06:37:15
使用collections和zip元组中的Counter。
from collections import Counter
list = zip(source, destination)
count = Counter(list)结果:
Counter({(6, 5): 3, (1, 8): 2, (6, 8): 1, (8, 7): 1, (7, 5): 1, (5, 1): 1, (0, 8): 1, (3, 0): 1, (8, 8): 1, (4, 2): 1, (5, 4): 1, (5, 7): 1, (0, 3): 1, (2, 7): 1, (2, 2): 1, (1, 0): 1, (4, 5): 1})https://stackoverflow.com/questions/55602084
复制相似问题