我对运动有问题。 这是一个递归函数,在参数中我有一个dict,一个起始城市和一系列线索。 我必须返回一个包含秘密的列表(列表中的最后一项)。 从起点城市开始,然后按照线索列表,然后重复第二个城市
格言:
{('ROMA', 'la'): [['PARIGI', 'vendita'], ['CAIRO', 'furto'], ['MOSCA', 'mata']], ('PARIGI', 'bocca'): [['BERLINO', 'diamanti'], ['CANCUN', 'cannoni']], ('CAIRO', 'bocca'): [['MILANO', 'di']], ('MOSCA', 'bocca'): [['PECHINO', 'hari']], ('BERLINO', 'sollevò'): [['PECHINO', 'rubati']], ('CANCUN', 'sollevò'): [['ROMA', 'mercato']], ('MILANO', 'sollevò'): [['PARIGI', 'diamanti']], ('PECHINO', 'sollevò'): [['MILANO', 'ha']], ('PECHINO', 'dal'): [['ROMA', 'stanotte']], ('ROMA', 'dal'): [['MOSCA', 'nero']], ('PARIGI', 'dal'): [['CAIRO', 'a']], ('MILANO', 'dal'): [['PARIGI', 'sedotto']], ('ROMA', 'fiero'): [['PARIGI', 'ad']], ('MOSCA', 'fiero'): [['BERLINO', 'del']], ('CAIRO', 'fiero'): [['CANCUN', 'buckingham']], ('PARIGI', 'fiero'): [['PECHINO', 'ambasciatore']], ('PARIGI', 'pasto'): [['CANCUN', 'anversa']], ('BERLINO', 'pasto'): [['CANCUN', 'cairo']], ('CANCUN', 'pasto'): [['MILANO', 'palace']], ('PECHINO', 'pasto'): [['MILANO', 'zambia']]}
线索:
['la', 'bocca', 'sollevò', 'dal', 'fiero', 'pasto']
初始城市:
'ROMA'
我的代码:
secret = []
def getSecret(city_dict, initial_city, clues):
if (len(clues) == 0):
return secret
for clue in clues:
if (initial_city, clue) in city_dict:
secret.append(city_dict[(initial_city, clue)][0][1])
return getSecret(city_dict, city_dict[(initial_city, clues[0])][0][0], clues[1:])
我的输出错误:
['vendita', 'diamanti', 'rubati', 'stanotte', 'ad', 'anversa']
应该是:
[['vendita', 'diamanti', 'rubati', 'stanotte', 'ad', 'anversa'],['vendita','cannoni','mercato','nero','del','cairo'],['furto','di', 'diamanti','a', 'buckingham','palace'],['mata','hari','ha','sedotto','ambasciatore','zambia']]
有什么建议吗
目前没有回答
相关问题 更多 >
编程相关推荐