- Создайте функцию, определяющую количество друзей у выбранного (каждого) пользователя.
- Создайте функцию, выводящую на экран пользователей, отсортированных по количеству друзей.
Более чем за пол-дня выродил вот такое:
community_of_friends = { 'С.В. Дроздов' : ['П.В. Дроздов', 'И.И. Воробьёв', 'А.С. Синицин', 'Ф.С. Грачёв', 'А.К. Петухов'], 'П.В. Дроздов' : ['С.В. Дроздов', 'А.С. Голубева', 'М.Л. Гусев'], 'И.И. Воробьёв' : ['Л.Т. Воронин', 'С.В. Дроздов', 'П.В. Дроздов', 'М.Л. Цаплин'], 'А.С. Синицин' : ['С.В. Дроздов', 'П.В. Дроздов'], 'Ф.С. Грачёв' : ['С.В. Дроздов', 'П.В. Дроздов', 'А.К. Петухов'], 'А.С. Сорокина' : ['Л.Т. Воронин'], 'Л.Т. Воронин' : ['К.К. Чайкин', 'А.С. Уткин'] } def number_of_friends(friends_base): num_friends = [] for key, value in friends_base.items(): x = key y = [] y.extend(value) z = (x,len(y)) num_friends.append(z) return(num_friends) num_friends = number_of_friends(community_of_friends) num_friends.sort(key = lambda kol_friends: kol_friends[1], reverse=True) num_friends
Как-бы работает, но что-то подозрительно … т.к. получилось методом тыка.
Сортировку по lambda-функции нашёл в сети, но смысл её синтаксиса пока плавает.
(Мне бы пока попроще - без “синтаксического сахара”, хотя подобные примеры заставляют здорово покопаться).
И эту часть с lambda-функцией никак не могу обернуть в функцию.
Есть и вторая часть задания:
- Создайте функцию, определяющую наличие однофамильцев.
- Создайте функцию, определяющую наличие пользователей с одинаковыми инициалами.
- Создайте функцию, возвращающую список уникальных пользователей сети в формате Фамилия И.О..
- Создайте функцию, возвращающую список из уникальных фамилий пользователей сети
Вот тут я просто растерялся - даже не знаю как подступиться.