Python 检查列表是否包含1、2或3

Python 检查列表是否包含1、2或3,python,Python,下面的函数总是返回false。我想把一个列表作为输入,然后找出它是否包含1、2和3 def arrayCheck(nums): # CODE GOES HERE if (1 in nums) and (2 in nums) and (3 in nums): return True else: return False arr = input() # takes a list as input x = set(arr) # covert

下面的函数总是返回false。我想把一个列表作为输入,然后找出它是否包含1、2和3

def arrayCheck(nums):
    # CODE GOES HERE
    if (1 in nums) and (2 in nums) and (3 in nums):
        return True
    else:
        return False

arr = input()  # takes a list as input
x = set(arr)  # coverts it into array
result = arrayCheck(x)
print(result)

我想在用户定义的列表中搜索数字1、2和3。因此,我将列表转换为具有唯一元素的集合。此外,我在方法中使用了
来搜索项目。问题是它每次都返回false

您的函数工作正常,您输入了错误的数据(
arrayCheck([1,2,3])
返回
True

不能将列表作为输入。将字符串转换为集合会将字符分隔为集合,这不是您想要的(
set(“hello”)={'h','l','o','e'}
),因此您必须输入一个整数列表

大概是这样的:

inp = input().split(",")
inp = [int(i) for i in inp] # Convert all the values to ints
print(arrayCheck(inp))
并提供
1,2,3,4
作为输入将起作用

顺便说一下,您可以在函数中返回布尔值:

def arrayCheck(nums):
    return (1 in nums) and (2 in nums) and (3 in nums)
欢迎来到SO!如果需要建议,请查看和。我不知道为什么有人否决了这个问题。我觉得很好。我想您可以在调试过程中检查
x
的值,但这对于新手来说不是很明显。将来,您可能会发现使用调试器逐步检查代码很有用,例如。