Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Data Science by (18.4k points)

I am studying Data Science from a textbook which is 20 years older and I found so many interesting things in it. When I started learning about data structure topics. I found the user-defined type dictionary interesting and when I tried using the dictionary in python. I appended the dictionary to itself and it didn't through me an error but when to an infinite loop.

So I tried to beautify the dictionary to know better so I surfed on the internet and found the solution to print the output in a more concise style as shown below:

{"id": 0, "name": "Hero", "friend": [*users[1], *users[2]] }

{"id": 1, "name": "Dunn", "friend": [*users[2], *users[3]] }

This is my code from scratch

users = [

        { "id": 0, "name": "Hero"},

        { "id": 1, "name": "Dunn"},

        { "id": 2, "name": "Sue"},

        { "id": 3, "name": "Chi"},

        { "id": 4, "name": "Thor"},

        { "id": 5, "name": "Clive"},

        { "id": 6, "name": "Hicks"},

        { "id": 7, "name": "Devin"},

        { "id": 8, "name": "Kate"},

        { "id": 9, "name": "Klein"}

]

friendship = [(0,1), (0,2), (1,2), (1,3), (2,3), (3,4),

              (4,5), (5,6), (5,7), (6,8), (7,8), (8,9)]

for user in users :

    user["friends"] = []

for i, j in friendship :

    users[i]["friends"].append(users[j])

    users[j]["friends"].append(users[i])

def number_of_friends(user) :

    """ how many friends does user have """

    return(len(user["friends"]))

total_connection = sum(number_of_friends(user)

                       for user in users)

num_users = len(users)

avg_connection = total_connection / num_users

# create a list (user_id, number_of_friends)

num_friends_by_id = [(user['id'], number_of_friends(user))

                      for user in users]

The output is printing in a single line:

{'id': 0, 'name': 'Hero', 'friends': [{'id': 1, 'name': 'Dunn', 'friends': [{...}, {'id': 2, 'name': 'Sue', 'friends': [{...}, {...}, {'id': 3, 'name': 'Chi', 'friends': [{...}, {...}, {'id': 4, 'name': 'Thor', 'friends': [{...}, {'id': 5, 'name': 'Clive', 'friends': [{...}, {'id': 6, 'name': 'Hicks', 'friends': [{...}, {'id': 8, 'name': 'Kate', 'friends': [{...}, {'id': 7, 'name': 'Devin', 'friends': [{...}, {...}]}, {'id': 9, 'name': 'Klein', 'friends': [{...}]}]}]}, {'id': 7, 'name': 'Devin', 'friends': [{...}, {'id': 8, 'name': 'Kate', 'friends': [{'id': 6, 'name': 'Hicks', 'friends': [{...}, {...}]}, {...}, {'id': 9, 'name': 'Klein', 'friends': [{...}]}]}]}]}]}]}]}, {'id': 3, 'name': 'Chi', 'friends': [{...}, {'id': 2, 'name': 'Sue', 'friends': [{...}, {...}, {...}]}, {'id': 4, 'name': 'Thor', 'friends': [{...}, {'id': 5, 'name': 'Clive', 'friends': [{...}, {'id': 6, 'name': 'Hicks', 'friends': [{...}, {'id': 8, 'name': 'Kate', 'friends': [{...}, {'id': 7, 'name': 'Devin', 'friends': [{...}, {...}]}, {'id': 9, 'name': 'Klein', 'friends': [{...}]}]}]}, {'id': 7, 'name': 'Devin', 'friends': [{...}, {'id': 8, 'name': 'Kate', 'friends': [{'id': 6, 'name': 'Hicks', 'friends': [{...}, {...}]}, {...}, {'id': 9, 'name': 'Klein', 'friends': [{...}]}]}]}]}]}]}]}, {'id': 2, 'name': 'Sue', 'friends': [{...}, {'id': 1, 'name': 'Dunn', 'friends': [{...}, {...}, {'id': 3, 'name': 'Chi', 'friends': [{...}, {...}, {'id': 4, 'name': 'Thor', 'friends': [{...}, {'id': 5, 'name': 'Clive', 'friends': [{...}, {'id': 6, 'name': 'Hicks', 'friends': [{...}, {'id': 8, 'name': 'Kate', 'friends': [{...}, {'id': 7, 'name': 'Devin', 'friends': [{...}, {...}]}, {'id': 9, 'name': 'Klein', 'friends': [{...}]}]}]}, {'id': 7, 'name': 'Devin', 'friends': [{...}, {'id': 8, 'name': 'Kate', 'friends': [{'id': 6, 'name': 'Hicks', 'friends': [{...}, {...}]}, {...}, {'id': 9, 'name': 'Klein', 'friends': [{...}]}]}]}]}]}]}]}, {'id': 3, 'name': 'Chi', 'friends': [{'id': 1, 'name': 'Dunn', 'friends': [{...}, {...}, {...}]}, {...}, {'id': 4, 'name': 'Thor', 'friends': [{...}, {'id': 5, 'name': 'Clive', 'friends': [{...}, {'id': 6, 'name': 'Hicks', 'friends': [{...}, {'id': 8, 'name': 'Kate', 'friends': [{...}, {'id': 7, 'name': 'Devin', 'friends': [{...}, {...}]}, {'id': 9, 'name': 'Klein', 'friends': [{...}]}]}]}, {'id': 7, 'name': 'Devin', 'friends': [{...}, {'id': 8, 'name': 'Kate', 'friends': [{'id': 6, 'name': 'Hicks', 'friends': [{...}, {...}]}, {...}, {'id': 9, 'name': 'Klein', 'friends': [{...}]}]}]}]}]}]}]}]}

1 Answer

0 votes
by (36.8k points)

I request you to use the class instead of the dictionary, I am providing the code below got through it:

class Person:

    def __init__(self, id, name):

        self.id = id

        self.name = name

        self.friends = []

    def __str__(self):

        return "*users[" + str(id) + "]"

I hope this will work fine.

If you are a beginner and want to know more about Data Science the do check out the Data Science course

Browse Categories

...