我想在列表中添加元素

时间:2019-07-09 10:34:43

标签: python

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

6 个答案:

答案 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)