【发布时间】:2021-05-09 10:49:40
【问题描述】:
问题:编写一个名为 get_list_of_multiples(numbers, m) 的递归函数,它接受一个整数列表和一个整数作为参数。此函数以与给定参数相同的顺序返回列表中 m 的倍数的列表。如果列表中没有 m 的倍数,该函数应该返回一个空列表。
大家好,我的代码有问题:
def get_list_of_multiples(numbers, m):
if len(numbers) > 1:
if(numbers[0] % m == 0):
return [numbers[0]] + get_list_of_multiples(numbers[1:], m)
return get_list_of_multiples(numbers[1:], m)
if(numbers[0] % m == 0):
return [numbers[0]]
else:
return []
测试用例是:
print(get_list_of_multiples([2, 3, 5, 6], 2))
print(get_list_of_multiples([9, 5, 15, 11, 23], 3))
print(get_list_of_multiples([], 2))
前两个测试用例很好,但对于最后一个为空的测试用例,假设返回一个空列表,但它不断出现错误,说列表索引超出范围。我在代码中修改了什么以使其工作?谢谢
【问题讨论】:
标签: python