簡體   English   中英

我應該在try循環中使用try和accept嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM