【发布时间】:2020-12-21 06:36:17
【问题描述】:
我正在尝试编写代码以返回数组中给定元素的所有索引的数组
arr = [15,11,40,4,4,9]
x = 4
# fsf means count of element 'found so far'
def all_index(arr, i , x, fsf):
if i == len(arr):
result = [0] * fsf
elif arr[i] == x:
indices = all_index(arr, i + 1, x, fsf + 1)
indices[fsf] = i
return indices
else:
indices = all_index(arr, i + 1, x, fsf)
return indices
print(all_index(arr, 0, x, 0))
这个问题在这里已经有了答案: Python中没有返回的递归函数[重复](2个答案)
您的帖子与类似问题相关联。如果此问题不能解决您的问题,请提出新问题。
3 小时前关闭。
(为您提供私人反馈) 编辑问题
我正在尝试编写代码以返回数组中给定元素的所有索引的数组。 fsf 表示“到目前为止找到的元素”的计数
arr = [15,11,40,4,4,9]
x = 4
def all_index(arr, i , x, fsf):
if i == len(arr):
result = [0] * fsf
elif arr[i] == x:
indices = all_index(arr, i + 1, x, fsf + 1)
indices[fsf] = i
return indices
else:
indices = all_index(arr, i + 1, x, fsf)
return indices
print(all_index(arr, 0, x, 0))
预期输出:[3,4]
据我了解,索引数组是 [0,0] 但后来它必须更改为 [3,4]
虽然代码很容易使用迭代,但我正在尝试学习递归。
【问题讨论】:
-
简单的答案是你过于复杂的东西,你没有在你的方法中循环数组
标签: python arrays list recursion indices