Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 20, 2022 23:07:51

Victor_M
Зарегистрирован: 2022-08-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Словари и списки - социальная сеть

Неделю как занимаюсь с Питоном.

Задание: Используя списки и словари установить взаимосвязи пользователей некой соц.сети.
С помощью функции найти имена друзей, например “Кати”
(точнее: окружение её контактов - с кем она и кто с ней дружат).

С ходу набросал вот:

 friendships = {
    'Алексей': ['Александр', 'Петр'], 
    'Александр': [], 
    'Петр': ['Александр', 'Катя'], 
    'Катя': ['Александр', 'Владимир'],
    'Владимир': ['Аня'],
    'Аня':['Катя']}
x = []
for dic in friendships:
    for key, value in friendships.items():
        if value == ['Катя']:
            x.append(key)
            break
print(x)

Дальше не понимаю как идти (исправить) и где бы тут “замутить” функцию.

Прикреплённый файлы:
attachment частная соцсеть-1.jpg (50,4 KБ)

Офлайн

#2 Авг. 21, 2022 02:24:28

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9867
Репутация: +  853  -
Профиль   Отправить e-mail  

Словари и списки - социальная сеть

Victor_M
Дальше не понимаю как идти (исправить) и где бы тут “замутить” функцию.
Надо создать функцию найти_друзей() , у которой два аргумента: первый аргумент - словарь соцсети; второй аргумент - человек. Функция возвращает список людей. Дальше надо разрабатывать функцию.

Сделай заглушку в таком виде и отладь её.
  
>>> def find_friends(social_network, person):
...     return ['one', 'two', 'three']
... 
>>> find_friends({'a': ['a1', 'a2'], 'b': ['b1', 'b2']}, 'a')
['one', 'two', 'three']
>>>
Убедись, что заглушка запускается, всё принимает правильно и всё возвращает правильно.
После этого можно заполнять функцию инструкциями, которые приведут её из точки A в точку B.

Victor_M
С ходу набросал вот:
Это не работает. Чтобы проверить имя в списке, используй операцию in (link).
  
>>> 'one' in ['one', 'two', 'three']
True
>>> 'four' in ['one', 'two', 'three']
False
>>>



Отредактировано py.user.next (Авг. 21, 2022 02:32:52)

Офлайн

#3 Авг. 22, 2022 17:16:13

Victor_M
Зарегистрирован: 2022-08-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Словари и списки - социальная сеть

Спасибо, пришлось покопаться …
Сделал так (кажется работает).

 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)

Офлайн

#4 Авг. 22, 2022 23:14:05

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9867
Репутация: +  853  -
Профиль   Отправить e-mail  

Словари и списки - социальная сеть

Victor_M
Сделал так (кажется работает).
Оно работает, но ищет только для Катя. Если надо будет искать для Владимир, то надо будет весь код переписывать. Поэтому и надо сделать функцию, которая принимает словарь и имя, а возвращает список друзей для имени.



Отредактировано py.user.next (Авг. 22, 2022 23:14:34)

Офлайн

#5 Авг. 24, 2022 00:24:58

Victor_M
Зарегистрирован: 2022-08-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Словари и списки - социальная сеть

Спасибо, попробую доработать.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version