logo CodeStepByStep logo


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.


  • 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.)
Function: Write a Python function as described, not a complete program.

You must log in before you can solve this problem.

Log In

Need help?

Stuck on an exercise? Contact your TA or instructor.

If something seems wrong with our site, please

Is there a problem? Contact us.