我在 Coding Bat, Warmup-2 > array_front9 上研究这个问题:
给定一个整数数组,如果数组中的前 4 个元素之一是 9,则返回 True。数组长度可能小于 4。
例子:
array_front9([1, 2, 9, 3, 4]) ? True
array_front9([1, 2, 3, 4, 9]) ? False
array_front9([1, 2, 3, 4, 5]) ? False
Run Code Online (Sandbox Code Playgroud)
这是我的解决方案:
def array_front9(nums):
if len(nums) >= 4:
for i in range(0,4):
if nums[i] == 9:
return True
return False
elif 0 <= 0 < 4:
for i in range(len(nums)):
if nums[i] == 9:
return True
return False
else:
if len(nums) == 0:
return False
Run Code Online (Sandbox Code Playgroud)
但是,在第 3 行中,如果我尝试通过编写以下内容来遍历列表:
for i in num[0:4]:
我会得到一个列表索引超出范围错误。有人可以帮助我理解为什么我不能这样做吗?
谢谢!
小智 5
这是一个 2 班轮版本:
def array_front9(nums):
return 9 in nums[:4]
Run Code Online (Sandbox Code Playgroud)
您的代码的问题:
for i in num[0:4]:正在迭代列表的元素。例如,如果列表的长度为 9,并且i=9,则无法获取索引,因为它不存在
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |