Давайте попробуем дать вам легко читаемое решение, хотя я не уверен в вашем запросе. Это дает вам словарь с:
- ключ = имя пользователя,
- значение = список друзей этого пользователя:
users=[{"id":0,"name":"hero"},{"id":1,"name":"Dunn"},{"id":2,"name":"Sue"},{"id":3,"name":"Chie"},{"id":4,"name":"Thor"},
{"id": 5, "name": "Clive"},{"id":6,"name":"Hicks"},{"id":7,"name":"Devin"},{"id":8,"name":"Kate"},{"id":9,"name":"kelin"}]
friendships = [(0, 1), (0, 2), (1, 2), (1, 3), (2, 3), (3, 4), (4, 5), (5, 6), (5, 7), (6, 8), (7, 8), (8, 9)]
names = {d["id"]:d["name"] for d in users}
friends = {d["name"]:[] for d in users}
for t in friendships:
friends[names[t[0]]].append(names[t[1]])
friends[names[t[1]]].append(names[t[0]])
friends = [{k:v} for k,v in friends.items()]
print(friends)
# [{'hero': ['Dunn', 'Sue']}, {'Dunn': ['hero', 'Sue', 'Chie']}, {'Sue': ['hero', 'Dunn', 'Chie']},
# {'Chie': ['Dunn', 'Sue', 'Thor']}, {'Thor': ['Chie', 'Clive']}, {'Clive': ['Thor', 'Hicks', 'Devin']},
# {'Hicks': ['Clive', 'Kate']}, {'Devin': ['Clive', 'Kate']}, {'Kate': ['Hicks', 'Devin', 'kelin']},
# {'kelin': ['Kate']}]