In any group of people there are many pairs of friends. Assume that two people who share a friend are friends themselves. (Yes, this is an unrealistic assumption in real life, but let's make it nevertheless). In other words, if people A and B are friends and B is friends with C, then A and C must also be friends. Using this rule we can partition any group of people into friendship circles as long as we know something about the friendships in the group.
Write a function networks() that takes two parameters. The first parameter is the number of people in the group and the second parameter is a list of tuple objects that define friends. Assume that people are identified by numbers 0 through n-1. For example, tuple (0, 2) says that person 0 is friends with person 2. The function should print the partition of people into friendship circles. The following shows several sample runs of the function:
>>>networks(5,[(0,1),(1,2),(3,4)])#execute
Social network 0 is {0,1,2}
Social Network 1 is {3,4}
I am honestly pretty lost on how to start this program, any tips would be greatly appreciated.
def networks(n,lst):
groups= []
for i in range(n)
groups.append({i})
for pair in lst:
union = groups[pair[0]]|groups[pair[1]]
for p in union:
groups[p]=union
sets= set()
for g in groups:
sets.add(tuple(g))
i=0
for s in sets:
print("network",i,"is",set(s))
i+=1
This is what I was looking for if anybody cares.