Я новичок в Python и в настоящее время ищут стажировку или работу. В настоящее время я работаю над программой в Python, который читает файл, содержащий данные в этой форме:Выполнение поиска по ID в списке друзей в Python
Id;name;surname;age;gender;friends;
Id и возраста являются положительными целыми числами,
пола может быть «мужчина "или" женщина ",
и Друзья - это массив чисел, разделенных запятой, которые представляют собой идентификаторы лиц, знакомых с текущим сын. Если Person1 является другом Person2, он должен работать наоборот.
Как вы можете видеть в приведенном выше примере, атрибуты «Лица» разделяются точкой с запятой, и трюк заключается в том, что не каждый человек имеет каждый атрибут, и, разумеется, они отличаются количеством друзей. Итак, первая часть задачи - создать программу, которая читает файл и создает структуру, которая представляет список лиц с указанными выше атрибутами. Я должен выполнить поиск этих лиц по идентификатору.
Вторая часть - создать функцию с двумя аргументами (Id1, Id2), которая возвращает True, если человек с Id2 является другом для лица с Id1. В противном случае возвращается false.
У меня есть идеи на мой взгляд, но я не уверен, как это реализовать, поскольку я еще недостаточно знаю о Python. Я предполагаю, что лучшей структурой для этого будет словарь, но я не уверен, как загрузить в него файл, поскольку атрибуты всех лиц разные. Я был бы благодарен за любую помощь, которую вы можете мне предложить. Вот моя попытка написать код:
people = open(r"data.txt")
class People:
id = None
name = ''
surname = ''
age = None
gender = ['male', 'female']
friends = []
#def people(self):
# person = {'id': None,
# 'name': '',
# 'surname': '',
# 'age': None,
# 'gender': ['male', 'female'],
# 'friends': []
# }
# return person
def community(self):
comm = [People()]
return comm
def is_friend(id1, id2):
if (id1 in People.friends) & (id2 in People.friends):
return True
people.close()
Добро пожаловать в SO, вы найдете сообщество, очень желающее помочь, если вы сможете показать, что вы пробовали, и то, что вы застряли. Модуль 'csv' поможет вам прочитать ваши данные, и вы должны подумать о соответствующих структурах данных для вашей информации. – AChampion
Я бы сделал класс «Личность», а потом просто их друзья были набором идентификаторов (ints) в качестве атрибута этого класса. Является ли дружба коммутативной? –
Да, дружба является коммутативной, как в реальных социальных сетях. Я также пытался создать класс Person и читать данные в нем, но я до сих пор не понял, как это сделать. Я могу загрузить свою попытку сделать класс. –