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

2024-04-29 01:47:28 发布

您现在位置: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)  # coverts it into array
result = arrayCheck(x)
print(result)

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


Tags: and函数infalse列表inputreturnhere
1条回答
网友
1楼 · 发布于 2024-04-29 01:47:28

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

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

大概是这样的:

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)

相关问题 更多 >