我想使用python创建数组问题

时间:2019-02-14 02:23:05

标签: python arrays

你们都已经看到了如何在python中编写循环。现在是实施所学知识的时候了。

给定一个由N个数字组成的数组A,您必须编写一个程序,该程序打印数组A的元素之和与数组A的相反元素的对应元素。 如果数组A具有元素[1,2,3],则数组A的倒数将为[3,2,1],结果数组应为[4,4,4]。

输入格式:

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

输出格式:

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

示例:

输入: 4 2 5 3 1

输出: 3883

说明: 这里的数组A是[2,5,3,1] os与此数组相反的是[1,3,5,2],因此结果数组是[3,8,8,3]

我的解决方案不起作用。

我的解决方法是:

r=input()
r=int(r)
result_t = []
d=[]
for i in range(0, r):
    c=input()
    c=int(c)
    t = i
    result_t.append(c)
d=reversed(result_t)
d=int(d)
s=result_t+d
for i in range(0, r):
       print(s[i])

4 个答案:

答案 0 :(得分:0)

您只需要遍历result_td。您可以使用zip()合并两个列表,以便可以并行遍历它们:

r=input()
r=int(r)
result_t = []
for i in range(r):
    c=input()
    c=int(c)
    result_t.append(c)
d = reversed(result_t)
result = [x + y for x, y in zip(result_t, d)]
print(result.join(" "))

您也可以执行此操作而无需列出反向列表。

result = [x + result_t[-(i+1)] for i, x in enumerate(result_t)]

当您在列表中使用负索引时,它将从末开始计数。求反之前,您必须添加1,因为最后一个元素是-1(因为-0与第一个元素0相同)。

答案 1 :(得分:0)

“只能将列表(而不是“ list_reverseiterator”)连接到列表”

reversed(result_t)不返回列表,而是返回迭代器

尝试:

rev = []
for i in reversed(result_t):
    rev.append(i)
print(rev)

答案 2 :(得分:0)

尝试这个:

   x = input()
   result_t = [int(x) for x in input().split()]
   rev = [x for x in reversed(result_t)]
   result = [int(x) + int(y) for x, y in zip(result_t, rev)]
   for i in result:
      print(i,end=" ")

答案 3 :(得分:0)

这里的数组A为[2,5,3,1],而该数组的反向为[1,3,5,2],因此结果数组为[3,8,8,3]

a = []
n = int(input("Enter the number of elements"))
for i in range(n):
    x = int(input("Enter the elements"))
    a.append(x)

print(a)

res = []
b = [None] * len(a)
for i in range(0, len(a)):
    b[i] = a[i]
b.reverse()
print(b)

for i in range(0, len(a)):
    res.append(a[i] + b[i])
print(res)