Write a function named friend_list
that accepts a file name as a parameter and reads friend relationships from a file and stores them into a compound collection that is returned.
You should create a dictionary where each key is a person's name from the file, and the value associated with that key is a setof all friends of that person.
Friendships are bi-directional: if Marty is friends with Danielle, Danielle is friends with Marty.
The file contains one friend relationship per line, consisting of two names.
The names are separated by a single space.
You may assume that the file exists and is in a valid proper format.
If a file named buddies.txt
looks like this:
Marty Cynthia
Danielle Marty
Then the call of friend_list("buddies.txt")
should return a dictionary with the following contents:
{'Cynthia': ['Marty'], 'Danielle': ['Marty'], 'Marty': ['Cynthia', 'Danielle']}
You should make sure that each person's friends are stored in sorted order in your nested dictionary.
Constraints:
- You may open and read the file only once. Do not re-open it or rewind the stream.
- You should choose an efficient solution. Choose data structures intelligently and use them properly.
- You may create one collection (list, dict, set, etc.) or nested/compound structure as auxiliary storage.
A nested structure, such as a dictionary of lists, counts as one collection.
(You can have as many simple variables as you like, such as ints or strings.)