[英]Should I use try and accept in a while loop?
我應該根據提供的最后一個單詞的最后一個字母返回單詞列表。 當提供的最后一個單詞的最后一個字母不可用時,當找不到單詞時,我遇到了終止問題。 像“ e”一樣,如果沒有以字母“ e”開頭的單詞,它將不會終止函數並引發錯誤。
def game(names):
words_by_letter = {}
current_word = names[0]
phrase = [current_word]
lookup_letter = current_word[-1]
for name in names:
if name[0] in words_by_letter:
words_by_letter[name[0]].append(name)
else:
words_by_letter[name[0]] = [name]
while lookup_letter in words_by_letter:
if lookup_letter[0]:
next_word = words_by_letter[lookup_letter][0]
phrase.append(next_word)
del words_by_letter[current_word[0]][0]
current_word = next_word
lookup_letter = current_word[-1]
else:
break
return phrase
print game(["bagon", "baltoy", "yamask", "starly", "nosepass", "kalob", "nicky", "booger"])
print game(["apple", "berry", "cherry"]) #should return ['apple']
print game(["noon", "naan", "nun"])
您可以在while循環中使用標志。
flag = False
while lookup_letter in words_by_letter:
if lookup_letter[0]:
next_word = words_by_letter[lookup_letter][0]
phrase.append(next_word)
del words_by_letter[current_word[0]][0]
current_word = next_word
lookup_letter = current_word[-1]
flag=True # Here if found it sets flag to true
else:
break
if flag:
return phrase
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.