我怎样才能将每个元素减一以生成一个包含所有零的列表我试图以递归方式解决它
how can I subtract each element by one to generate a list contains all zeros i tried to solve it in recursive way
如果我有一个列表,如何以递归方式将每个元素减一?我实现了这段代码
list=[5,4,3,2,1,1]
level=numbers[0]
def list_arrays(numb):
if len(numbers)-1 < level:
print("nograph")
else:
for i in range(len(numbers)):
numbers[i] = numbers[i] - 1
print(numbers)
输出应该是这样的
> [4,3,2,1,0,0]
> [3,2,1,0,0,0]
> [2,1,0,0,0,0]
> [1,0,0,0,0,0]
但它只打印了第一个数组
> [4,3,2,1,0,0]
import numpy as np
l=[5,4,3,2,1,1]
arr = np.array(l)
# loop until all elements are 0
while not np.all((arr == 0)):
for i in range(len(arr)):
# subtract non-zero element by 1
if not arr[i] == 0:
arr[i] -= 1
print(arr)
输出:
> [4 3 2 1 0 0]
> [3 2 1 0 0 0]
> [2 1 0 0 0 0]
> [1 0 0 0 0 0]
> [0 0 0 0 0 0]
这个怎么样:
list_ = [5, 4, 3, 2, 1, 1]
while any(list_):
print(list_)
list_ = list(map(lambda x: max(0, x-1), list_))
如果我有一个列表,如何以递归方式将每个元素减一?我实现了这段代码
list=[5,4,3,2,1,1]
level=numbers[0]
def list_arrays(numb):
if len(numbers)-1 < level:
print("nograph")
else:
for i in range(len(numbers)):
numbers[i] = numbers[i] - 1
print(numbers)
输出应该是这样的
> [4,3,2,1,0,0]
> [3,2,1,0,0,0]
> [2,1,0,0,0,0]
> [1,0,0,0,0,0]
但它只打印了第一个数组
> [4,3,2,1,0,0]
import numpy as np
l=[5,4,3,2,1,1]
arr = np.array(l)
# loop until all elements are 0
while not np.all((arr == 0)):
for i in range(len(arr)):
# subtract non-zero element by 1
if not arr[i] == 0:
arr[i] -= 1
print(arr)
输出:
> [4 3 2 1 0 0]
> [3 2 1 0 0 0]
> [2 1 0 0 0 0]
> [1 0 0 0 0 0]
> [0 0 0 0 0 0]
这个怎么样:
list_ = [5, 4, 3, 2, 1, 1]
while any(list_):
print(list_)
list_ = list(map(lambda x: max(0, x-1), list_))