我有一个这样的元组列表。

a = [(1,2),(1,3),(1,4),(2,5),(6,5),(7,8)]


在此列表中,1与2有关,然后2与5有关,而5与6有关,因此1与6有关。类似地,我需要找到元组中其他元素之间的关系。我需要一个采用输入值和输出的函数,如下所示:

input = (1,6) #output = True
input = (5,3) #output = True
input = (2,8) #output = False


我不了解itertools或map函数。它们可以用来解决这类问题吗?
并且出于好奇和兴趣,我在哪里可以找到要解决的这类问题,而在现实生活中会遇到哪些类型的问题?

最佳答案

通过将元组视为图形中的边缘,可以轻松完成此操作。然后将问题简化为检查两个节点之间是否存在路径。

为此存在许多不错的库,例如networkx

import networkx as nx

a = [(1,2),(1,3),(1,4),(2,5),(6,5),(7,8)]

G = nx.Graph(a)

nx.has_path(G, 1, 6)  # True
nx.has_path(G, 5, 3)  # True
nx.has_path(G, 2, 8)  # False

关于python - 计算元组列表中元素的可达性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51981551/

10-12 16:20