J'ai une liste des nations, et je veux avoir le plus long chemin des nations où chaque pays choisi doit commencer par la même lettre qui a mis fin l'élément précédentchaîne la plus longue d'éléments de la liste en Python
nations = ['albania','andorra','austria','belarus','belgium','bosnia and herzegovina',
'bulgaria','croatia','czech republic','denmark','estonia',
'finland','france','germany','greece','hungary',
'iceland','ireland','italy','latvia','liechtenstein','lithuania','luxembourg',
'macedonia','malta','moldova','monaco','montenegro','netherlands',
'norway','poland','portugal','romania','russia',
'san marino','serbia','slovakia','slovenia','spain','sweden', 'switzerland',
'ukraine','united kingdom','vatican city']
chain('spain')
>>>['spain', 'netherlands', 'slovenia', 'andorra', 'austria', 'albania']
J'ai essayé de cette façon, mais cela ne fonctionne pas
def chain(naz):
initial = naz[-1]
initials=[]
res = set()
res.add(naz)
for i in nations:
if i.startswith(initial):
initials.append(i)
for j in initials:
nations.remove(j)
res.add(j)
chain(j)
return res
Une suggestion?
I n comment ça ne marche pas? – Marcin
si je garde nations.remove (j), l'erreur est ValueError: list.remove (x): x pas dans la liste, si je supprime ce morceau de code RuntimeError: profondeur de récursivité maximale dépassée lors de l'appel d'un objet Python – fege
Veuillez mettre plein Empilez des traces pour les deux erreurs dans votre question et utilisez un commentaire pour identifier la ligne de code impliquée. – Marcin