【发布时间】:2016-12-14 20:39:19
【问题描述】:
我是 Python 新手,目前正在寻找实习或工作。我目前正在使用 Python 编写一个程序,该程序读取包含此形状数据的文件:
Id;name;surname;age;gender;friends;
Id和age为正整数,
性别可以是“男”或“女”,
and friends 是一个数字数组,以逗号分隔,代表与当前人为好友的人的Id。如果 Person1 是 Person2 的朋友,则反之亦然。
正如你在上面的例子中看到的,一个“Person”的属性是用分号分隔的,诀窍是不是每个人都有所有的属性,当然,它们的不同之处在于朋友的数量。因此,任务的第一部分是编写一个程序来读取文件并创建一个结构,该结构表示具有上述属性的人员列表。我必须通过 ID 搜索那些人。
第二部分是创建一个带有两个参数 (Id1, Id2) 的函数,如果具有 Id2 的人是具有 Id1 的人的朋友,则返回 True。否则,它返回 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模块将帮助您读取数据,您应该考虑适合您的信息的数据结构。 -
我会创建一个
Person类,然后让他们的朋友成为一组 id(整数)作为该类的属性。友谊是可交换的吗? -
是的,友谊是可交换的,就像在真正的社交网络上一样。我也尝试过创建一个 Person 类,并将数据读入其中,但我仍然没有学会如何去做。我可以上传我的课程尝试。
标签: python search structure social-networking readfile