Форум сайта python.su
Неделю как занимаюсь с Питоном.
Задание: Используя списки и словари установить взаимосвязи пользователей некой соц.сети.
С помощью функции найти имена друзей, например “Кати”
(точнее: окружение её контактов - с кем она и кто с ней дружат).
С ходу набросал вот:
friendships = { 'Алексей': ['Александр', 'Петр'], 'Александр': [], 'Петр': ['Александр', 'Катя'], 'Катя': ['Александр', 'Владимир'], 'Владимир': ['Аня'], 'Аня':['Катя']} x = [] for dic in friendships: for key, value in friendships.items(): if value == ['Катя']: x.append(key) break print(x)
Прикреплённый файлы:
частная соцсеть-1.jpg (50,4 KБ)
Офлайн
Victor_MНадо создать функцию найти_друзей() , у которой два аргумента: первый аргумент - словарь соцсети; второй аргумент - человек. Функция возвращает список людей. Дальше надо разрабатывать функцию.
Дальше не понимаю как идти (исправить) и где бы тут “замутить” функцию.
>>> def find_friends(social_network, person): ... return ['one', 'two', 'three'] ... >>> find_friends({'a': ['a1', 'a2'], 'b': ['b1', 'b2']}, 'a') ['one', 'two', 'three'] >>>
Victor_MЭто не работает. Чтобы проверить имя в списке, используй операцию in (link).
С ходу набросал вот:
>>> 'one' in ['one', 'two', 'three'] True >>> 'four' in ['one', 'two', 'three'] False >>>
Отредактировано py.user.next (Авг. 21, 2022 02:32:52)
Офлайн
Спасибо, пришлось покопаться …
Сделал так (кажется работает).
friendships = { 'Алексей': ['Александр', 'Петр'], 'Александр': [], 'Петр': ['Александр', 'Катя'], 'Катя': ['Александр', 'Владимир'], 'Владимир': ['Аня'], 'Аня': ['Катя']} x = [] for key, value in friendships.items(): if key == 'Катя': x.extend(value) elif 'Катя' in value: x.append(key) print(x)
Отредактировано Victor_M (Авг. 22, 2022 17:16:55)
Офлайн
Victor_MОно работает, но ищет только для Катя. Если надо будет искать для Владимир, то надо будет весь код переписывать. Поэтому и надо сделать функцию, которая принимает словарь и имя, а возвращает список друзей для имени.
Сделал так (кажется работает).
Отредактировано py.user.next (Авг. 22, 2022 23:14:34)
Офлайн
Спасибо, попробую доработать.
Офлайн