使用循环检查字符串是否在字符串列表中

2024-04-24 00:31:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个函数,它使用for和while循环检查给定字符串是否在字符串列表中。我不应该使用“in”操作符。下面是我使用for循环的代码:

def word_in_list(words, word):
    for strings in words:
        if len(words) > 0 and strings == word:
            return True
        else:
            return False

但是,除非单个字符串是列表的第一个元素,否则它不会返回True。如果列表为空,则列表应返回False。如何使用while循环(并且没有“in”操作符)解决相同的问题


Tags: 函数字符串代码infalsetrue列表for
3条回答

当您发现一个不匹配项时,不要返回False,当您检查完所有可能性但未找到任何匹配项时,返回False

def word_in_list(words, word):
    for strings in words:
        if strings == word:
            return True
    return False

此外,无需每次都检查列表的长度,如果它为零,则根本不运行循环,直接返回False

简单地使用这个代码

def word_in_list(words, word):
    if word in words:
       return True
    else
       return False

由于else语句,您的代码错误。只有在检查整个列表(而不仅仅是第一个元素)之后,函数才能返回False。每当函数到达“return”指令时,它就会停止,因此它只检查第一条指令。这是正确的解决方案:

def word_in_list(words, word):
    i = 0
    while i < len(words):
        if words[i] == word:
            return True
        i += 1
    return False

相关问题 更多 >