检查派生列表中的项目

时间:2018-03-14 00:47:58

标签: python

所以我们的目标是回归" true"如果数字9出现在列表的前4个数字中。我通过首先创建一个仅包含前4个数字的新列表,然后检查是否出现9来完成此操作。

def array_front9(nums):
  lst = []
  lst.append(nums[:4])
  if 9 in lst:
    return True
  else:
    return False

由于某种原因,它总是返回False。这意味着a)数字未被转移到新列表或b)搜索时没有数字可见。我通过打印新列表测试了第一个,但我不知道为什么这些数字不可见。 请帮忙!

3 个答案:

答案 0 :(得分:3)

您要将列表附加到列表中,因此9不在lst中,因为9不是列表。您可以大大简化您的方法:

def array_front9(nums):
  return 9 in nums[:4]

显示当前方法正在做什么的简单示例:

In [1]: nums = [9,9,9,9]

In [2]: lst = []

In [3]: lst.append(nums)

In [4]: lst
Out[4]: [[9, 9, 9, 9]]

In [5]: 9 in lst
Out[5]: False

答案 1 :(得分:1)

您正在将列表附加到列表中。您应该尝试将切片列表分配给另一个变量并使用它。

答案 2 :(得分:1)

nums[:4]会返回列表,因此您要在列表中追加列表,而不是将{lst指定为nums[:4]

def array_front9(nums):
    lst = nums[:4]
    if 9 in lst:
        return True
    else:
        return False

更简单的方法可能是:

def array_front9(nums):
    return 9 in nums[:4]