我一直在Udacity上课,我正在进行最后的项目提交。
我必须通过解析一个字符串来创建数据结构: -
example_input =" John与Bryant,Debra,Walter相关。\ John喜欢 玩电影:游戏,柯基犬传说,恐龙晚餐。 科比与Olive,Ollie,Freda,Mercedes有联系。布莱恩特喜欢 玩城市审计员:财政困境,超级蘑菇人。 梅赛德斯与沃尔特,罗宾,布莱恩特相连。梅赛德斯喜欢 在爪哇岛,海岛玩海盗的传奇 冒险。\ Olive与John,Ollie相连。\ Olive喜欢玩 传说中的柯基雅传说,星际舰队指挥官。\黛布拉与之相连 Walter,Levi,Jennie,Robin。\ Debra喜欢玩Seven Schemers, 海盗在爪哇岛,矮人和剑。\沃尔特连接到 John,Levi,Bryant。\ Walter喜欢玩Seahorse Adventures,Ninja 仓鼠,超级蘑菇人。\ Levi与Ollie,John连接, Walter。\ Levi喜欢玩The Corgi,Seven Schemers,City 审计员:财政困境。\ Ollie与梅赛德斯相连, Freda,Bryant。\ Ollie喜欢玩Call of Arms,Dwarves和Swords, 电影:游戏。\珍妮与李维,约翰,弗雷达相连, Robin。\ Jennie喜欢玩Super Mushroom Man,Dinosaur Diner,Call 武器。\罗宾连接到奥利。\罗宾喜欢玩Call of 武器,矮人和剑。\ Freda与Olive,John,Debra相连。 弗雷达喜欢玩Starfleet Commander,Ninja Hamsters,Seahorse 冒险"
我成功完成了我的输出数据结构如下: -
[[' John',[' Bryant',' Debra',' Walter'],['电影:游戏',' The 传说Corgi',' Dinosaur Diner'],[' Bryant',' Olive',' Ollie', ' Freda','梅赛德斯'],'城市审计员:财政困境','超级 蘑菇人'],[' Mercedes',' Walter'' Robin'' Bryant'],[&# 39;该 传说柯基斯','海盗在爪哇岛'海啸冒险'], [' Olive',[' John',' Ollie'],[' The Corgi',' Starfleet Commander'],[' Debra',' Walter'' Levi',' Jennie',' Robin& #39;],['七 Schemers','海盗在Java Island',' Dwarves and Swords']], [' Walter',' John',' Levi',' Bryant'],[' Seahorse Adventures', '忍 Hamsters',' Super Mushroom Man'],[' Levi',' Ollie',' John', ' Walter'],' The Corgi',' Seven Schemers',' City 审计员:财政困境'],['奥利','梅赛德斯''弗雷达', ' Bryant'],' Call of Arms',' Dwarves and Swords',' The Movie:The 游戏'],[' Jennie',' Levi',' John',' Freda',' Robin& #39;],['超级 蘑菇人'恐龙晚餐',#39; Call of Arms']],[' Robin', [' Ollie'],[' Call of Arms',' Dwarves and Swords']],[' Freda', [' Olive',' John',' Debra'],[' Starfleet Commander',' Ninja Hamsters', ' Seahorse Adventures']]]
问题是我需要定义一个查找连接连接的过程,但是它没有正常运行。嵌套循环只运行一次迭代。我不知道为什么。我尝试正常循环,也使用范围功能。我也使用while循环但没有任何作用。这是我的代码: -
def get_secondary_connections(network, user):
found=False
for entry in network:
if entry[0]==user:
connections=entry[1]
found=True
connection_of_connections=[]
i=0
while i <len(connections):
for entry in network:
if connections[i] in entry[0]:
connection_of_connections=connection_of_connections+entry[1]
i=i+1
if found == True:
return connection_of_connections
else:
return None
print get_secondary_connections(net, 'John')
答案 0 :(得分:0)
从您的代码缩进中,您打算如何进行搜索并不是很清楚,但是我使用您的数据测试了以下修改后的版本,它似乎有效:
def get_secondary_connections(network, user):
connection_of_connections=[]
for entry in network:
if entry[0]==user:
connections=entry[1]
i=0
while i < len(connections):
connection = connections[i]
for other_entry in network:
if other_entry[0] == connection:
for item in other_entry[1]:
if (item != user) and (not item in connection_of_connections):
connection_of_connections.append(item)
i=i+1
if len(connection_of_connections) > 0:
return connection_of_connections
else:
return None
希望这有用。