list=[1,2,3,4,5]
我想这样添加:
1+2=3, 2+3=5, 3+4=7, 4+5=9
我尝试了下面的代码,但没有提供任何内容
num_list=[1,2,3,4,5,6]
n=6
i=0
j=0
new=[]
count=0
list_len=len(num_list)
for i in range (0,1,list_len-1):
for j in range (1,1,list_len-1):
pair=num_list[i]+num_list[j]
print (pair)
预期输出:
3
5
7
9
11
答案 0 :(得分:2)
将列表自身与列表偏移一针以成对;然后将它们添加在一起。
[x + y for x, y in zip(num_list, num_list[1:])]
# => [3, 5, 7, 9, 11]
答案 1 :(得分:1)
num_list=[1,2,3,4,5,6]
for i in range(len(num_list)-1):
print (num_list[i] + num_list[i+1])
输出:
3
5
7
9
11
答案 2 :(得分:1)
只需简单的功能就非常容易:
list = [ 1, 2, 3, 4, 5, 6 ]
for i in range(len(list) - 1):
print(list[i] + list[i + 1])
输出:
3
5
7
9
11
答案 3 :(得分:1)
itertools.pairwise
为此目的而设计:
from itertools import tee
def pairwise(iterable):
"s -> (s0,s1), (s1,s2), (s2, s3), ..."
a, b = tee(iterable)
next(b, None)
return zip(a, b)
您可以创建list
仅用于打印:
[sum(p) for p in pairwise(l)]
# [3, 5, 7, 9, 11]
# or
for p in pairwise(l):
print(sum(p))
输出:
3
5
7
9
11
答案 4 :(得分:1)
此解决方案可能更像“ pythonic”,但这是可以理解的!
num_list=[1,2,3,4,5,6]
results_list=[]
for i in range (len(num_list)):
if(i==len(num_list)-1):
break
results_list.append(num_list[i]+num_list[i+1])
print(results_list)
输出为:
[3, 5, 7, 9, 11]
答案 5 :(得分:0)
您可以通过列表理解来做到这一点:
arr = [1, 2, 3, 4, 5]
new_arr = [arr[i] + arr[i+1] for i,v in enumerate(arr) if i < len(arr)-1]
print(new_arr)