所以我们的目标是回归" 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)搜索时没有数字可见。我通过打印新列表测试了第一个,但我不知道为什么这些数字不可见。 请帮忙!
答案 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]