如何解决三角形格式列表元素总和的问题
how to solve this problem sum of the element of list in triangle format
我正在尝试对列表的元素求和。我必须在其中添加列表的相邻元素并创建一个新列表并重复该过程,直到我得到最后一个元素作为答案。我能够解决长度小于 5 的列表,但我无法概括任何给定列表的解决方案。帮我解决这个问题。下面是我的起始代码:
这是例子;
general example of the problem
lst=[]
n=int(input())
for i in range(0,n):
num = int(input())
lst.append(num)
print(lst)
sum1=[]
for i in range(1,len(lst)):
sum=i+i+1
sum1.append(sum)
print(sum1)
以下内容似乎相当简单:
n = int(input())
lst = [int(input()) for _ in range(n)]
while len(lst) > 1:
lst[:] = map(sum, zip(lst, lst[1:])) # all sums of neighbours
print(lst)
# Output for 1 2 3 4
# [3, 5, 7]
# [8, 12]
# [20]
一些文档:
给定 2 个等长的列表,你可以这样做:
M = [1,2,3]
N = [5,6,7]
print(*map(sum, zip(M,N)))
一个简单易懂的函数:
def solve(seq):
while len(seq) > 1:
res = []
for i in range(len(seq) - 1):
res.append(seq[i] + seq[i+1])
print(res)
seq = res
return res[0]
solve([1,2,3,4])
想法是找到相邻的和并存储在一个新列表中。一直做直到length变为1.
如果某人的逻辑变得清晰,可以添加一些高阶函数魔术。
我正在尝试对列表的元素求和。我必须在其中添加列表的相邻元素并创建一个新列表并重复该过程,直到我得到最后一个元素作为答案。我能够解决长度小于 5 的列表,但我无法概括任何给定列表的解决方案。帮我解决这个问题。下面是我的起始代码: 这是例子; general example of the problem
lst=[]
n=int(input())
for i in range(0,n):
num = int(input())
lst.append(num)
print(lst)
sum1=[]
for i in range(1,len(lst)):
sum=i+i+1
sum1.append(sum)
print(sum1)
以下内容似乎相当简单:
n = int(input())
lst = [int(input()) for _ in range(n)]
while len(lst) > 1:
lst[:] = map(sum, zip(lst, lst[1:])) # all sums of neighbours
print(lst)
# Output for 1 2 3 4
# [3, 5, 7]
# [8, 12]
# [20]
一些文档:
给定 2 个等长的列表,你可以这样做:
M = [1,2,3]
N = [5,6,7]
print(*map(sum, zip(M,N)))
一个简单易懂的函数:
def solve(seq):
while len(seq) > 1:
res = []
for i in range(len(seq) - 1):
res.append(seq[i] + seq[i+1])
print(res)
seq = res
return res[0]
solve([1,2,3,4])
想法是找到相邻的和并存储在一个新列表中。一直做直到length变为1.
如果某人的逻辑变得清晰,可以添加一些高阶函数魔术。