You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Python中`if findme in thislist`判断无法返回True?

问题原因及解决办法

核心问题是你错误地将单个查找值包装成了列表,而非直接传入单个元素:

  • 当输入1时,find是["1"](包含字符串"1"的列表),而list是["1", "2"](元素为单个字符串的列表)。
  • 此时["1"] in ["1", "2"]的判断结果必然是False——因为list里的元素都是单个字符串,没有任何元素是列表["1"],所以函数不会执行return thislist,默认返回None。

修正步骤

  1. 直接用变量存储查找值,无需放到列表中:把find = []和find.append(input(...))改成find = input("Input number to find: ")。
  2. (可选)如果需要匹配数字而非字符串,记得将输入转换为整数,避免类型不匹配的问题。

修正后的代码示例

字符串匹配版本

def function(findme, thislist):
    print("FindMe: {}".format(findme))
    print("In This List: {}".format(thislist))
    if findme in thislist:
        print("In!")
        return thislist

while(True):
    find = input("Input number to find: ")
    print("Find: {}".format(find))
    list = []
    list.append(input("Input 1st number: "))
    list.append(input("Input 2nd number: "))
    print("List: {}".format(list))
    result = function(find, list)
    print(result)
    if result is not None:
        print("returned list")
        print(list)
    else:
        print("nothing returned")

数字匹配版本

def function(findme, thislist):
    print("FindMe: {}".format(findme))
    print("In This List: {}".format(thislist))
    if findme in thislist:
        print("In!")
        return thislist

while(True):
    find = int(input("Input number to find: "))
    print("Find: {}".format(find))
    list = []
    list.append(int(input("Input 1st number: ")))
    list.append(int(input("Input 2nd number: ")))
    print("List: {}".format(list))
    result = function(find, list)
    print(result)
    if result is not None:
        print("returned list")
        print(list)
    else:
        print("nothing returned")

内容的提问来源于stack exchange,提问作者mcha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 23:20:28