反转PYTHON中的数组,并打印数组A的元素之和与数组A的反元素对应的元素

时间:2019-02-13 12:22:13

标签: python arrays sum whitespace reverse

谁能用python解决这个问题?

编写一个程序,该程序打印数组A的元素之和与数组A的反向元素的相应元素。如果数组A具有元素[1,2,3],则数组A的反向元素为[3] ,2,1],结果数组应为[4,4,4]。

输入格式:

输入的第一行包含代表数组A中元素数量的数字N。输入的第二行包含由空格分隔的N个数字。 (在最后一个元素之后,没有空格)

输出格式:

打印以空格分隔的结果数组元素。 (最后一个元素后没有空格)

示例:

输入:

4
2 5 3 1

输出:

3 8 8 3

说明:

此处数组A为[2,5,3,1]或此数组的反向为[1,3,5,2],因此所得数组为[3,8,8,3]

2 个答案:

答案 0 :(得分:1)

您可以使用列表推导来反转列表,并运行循环以获取原始列表和反转列表的总和:

1)速记解决方案:

>> a = [4,5,6,7,8,9]
>> c = [ aa + bb for aa,bb in zip(a,a[::-1])]
>> c 
[13,13,13,13,13,13]

在上面的代码中:

i)下面是反转列表的代码:

>> a[::-1]

ii)对于原始列表和反向列表的相应元素的总和,我创建了一个压缩列表并运行for循环并将其分配给c变量

>> c = [ aa + bb for aa,bb in zip(a,a[::-1])]

2)解决该问题的另一种方法是:

a = [1,2,3,4]
b = a[::-1] // [4,3,2,1]
c = []
for aa,bb in zip(a,b):
    cc = aa + bb
    c.append(cc)
print(c) // [5,5,5,5]

答案 1 :(得分:0)

如果要使用数组

import numpy as np

A = np.array((2, 5, 3, 1))
B = np.empty(4)

for i in range(len(A)):
    B[i] = A[i] + A[-(1+i)]

如果您想使用列表

A = [2, 5, 3, 1]
B = []

for i in range(len(A)):
    B.append(A[i] + A[-(1+i)])