簡體   English   中英

搜索功能僅在列表中找到第一項

[英]search function only finds first item in list

我試圖使用條件和for循環在python中建立基本的搜索功能,如下所示:

emails = ["me@gmail.com", "you@hotmail.com", "them@yahoo.com"]
def search(keyword):
    for i in emails:
        if keyword in i:
            return i
        else:
            return "Item not found"

keyword = input("Enter search term: ")
print (search(keyword))

但是我的功能僅在關鍵字是第一項的一部分時有效。 例如,如果我嘗試搜索“我”或“ gmail”,它將返回“ me@gmail.com”

mac$ python3 for_loop.py
     Enter search term: gmail
     me@gmail.com

如果我嘗試搜索“您”,它將返回錯誤(否則)語句“找不到項目”。

mac$ python3 for_loop.py
     Enter search term: hot
     Item not found

我究竟做錯了什么?

您不允許列表搜索結束。 您的函數檢查第一個項目,當它在字符串中找不到關鍵字時,返回"Item not found"而無需檢查其余項目。 相反,請嘗試以下操作:

def search(keyword):
    for i in emails:
        if keyword in i:
            return i
    return "Item not found"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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