如何计算python中网络的唯一连接数?

我需要计算网络中允许重复和自连接的唯一连接数。


以前的问题都集中在在单个平面数组中查找重复项或删除它们。我不知道如何将这些技术应用于以下内容:


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)是唯一连接的整数计数。


慕标5832272
浏览 188回答 2
2回答

凤凰求蛊

len(set(zip(source, destination)))zip(source, destination)返回对source和destinationset(...) 返回一个只有唯一元素的 Python 集len(...) 返回设置的长度 - 所有唯一边的数量PS 我建议你使用一些好的 Python 图形库,比如networkx。此类库具有大量有用的图形处理函数和算法。

繁花如伊

使用Counterfromcollections和zip元组。from collections import Counterlist = 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})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python