搜索功能仅查找列表中的第一项

时间:2018-03-02 19:39:16

标签: python python-3.x list

我试图在python中使用条件和for循环来创建一个基本的搜索函数:

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

如果我尝试搜索“你'”,则返回false(else)语句"找不到项目"。

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

我做错了什么?

1 个答案:

答案 0 :(得分:3)

您不允许搜索列表完成。您的函数检查第一项,当它在字符串中找不到关键字时,返回"Item not found"而不必费心检查其余项目。而是尝试以下方法:

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