已删除,我不应该问这个问题
答案 0 :(得分:0)
我将使它处于较低的技术水平;您可以根据需要将此内容塞进去。
遍历一阶连接的列表。对于每个连接,获取其一阶连接,并将它们添加到当前的二阶集中-我称之为friend_of_friend
。
def second_connections(self):
for other in self.connections:
self.friend_of_friend.union(other.connections)
答案 1 :(得分:0)
由于我看不到您的课程,所以我将在不将其集成到课程中的情况下实现解决方案。由于您没有共享数据结构,因此我也只描述如下连接。
sets = set([("A", "B"),("A", "D"),("A", "C"),("A", "E"),("B", "F"),("D", "G"), ("F","H")])
def up_to_second(name, sets):
connectables = [name] + [x[1] for x in sets if x[0] == name]
return [x for x in sets if x[0] in connectables]
up_to_second("A", sets)
这给出了预期的结果:
[('A', 'B'), ('A', 'D'), ('A', 'C'), ('A', 'E'), ('D', 'G'), ('B', 'F')]
假设您的数据结构与此至少有一点不同,则需要调整此解决方案以符合您的模式。但尽我所能告诉我这是一个解决方案。