用python中的类编写通讯录
我对通讯录有问题。 以下是有关该问题的一些信息: 通讯簿允许查询朋友的朋友(就像LinkedIn对连接的查询):1级的朋友是直接朋友,2级的朋友是朋友的朋友 我试图解决这个问题,但我仍然不知道如何解决最后的步骤 这是我的密码:用python中的类编写通讯录,python,Python,我对通讯录有问题。 以下是有关该问题的一些信息: 通讯簿允许查询朋友的朋友(就像LinkedIn对连接的查询):1级的朋友是直接朋友,2级的朋友是朋友的朋友 我试图解决这个问题,但我仍然不知道如何解决最后的步骤 这是我的密码: class AddressBook: def __init__(self): """Creates empty address book""" self.book = {} def addName(self, name, a
class AddressBook:
def __init__(self):
"""Creates empty address book"""
self.book = {}
def addName(self, name, address):
"""Adds name to address book, with address and
no friends"""
self.book[name] = address
def addFriend(self, name, friend):
"""Adds friend to the set of friends of name"""
self.book[name] = friend
def address(self, name):
"""Returns the address of name"""
n=set()
for e in self.book:
if self.book[e] == name:
n.add(e)
return n
def friends(self, name, degree):
"""Returns the set of all friends up to the specified
degree"""
n=set()
for name in self.book:
if self.book[name] == degree:
n.add(name)
return n
以下是一些正确的输出:
>>>a = AddressBook()
>>>a.addName('Ann', 34); a.addName('Bill', 62); a.addName('Barb', 95)
>>>a.addName('Emma', 56); a.addName('Fred', 46); a.addName('Jane', 90)
>>>a.addName('Joe', 33); a.addName('Lisa', 21); a.addName('Lucy', 18)
>>>a.addName('Mary', 52); a.addName('Sue', 12)
# Transitivity
# Fred -> Barb -> Jane -> Emma -> Lisa
# Fred -> Sue
# Jane -> Mary
>>>a.addFriend('Fred', 'Barb'); a.addFriend('Fred', 'Sue')
>>>a.addFriend('Barb', 'Jane'); a.addFriend('Jane', 'Emma')
>>>a.addFriend('Jane', 'Mary'); a.addFriend('Emma', 'Lisa')
>>> a.friends('Fred', 0)
set()
>>> a.friends('Fred', 1)
{'Barb', 'Sue'}
>>> a.friends('Fred', 2)
{'Barb', 'Jane', 'Sue'}
>>> a.friends('Fred', 3)
{'Mary', 'Barb', 'Jane', 'Sue', 'Emma'}
>>> a.friends('Fred', 4)
{'Barb', 'Emma', 'Mary', 'Lisa', 'Sue', 'Jane'}
但是,我的输出是allset()
你们能给我一些反馈和提示来解决这个问题吗
谢谢我不明白问题是什么,你想让朋友作为字符串而不是作为一个集合返回吗?考虑一个地址簿,除了地址,跟踪某人的朋友。我不明白下面的三个语句如何工作<代码>自我。书[名字] =朋友< /代码>,代码>自我。我也不明白什么是“问题”。您正在尝试创建一个社交网络,但一次只创建一个链接。我看不出瞬变性是如何建立的