你们都已经看到了如何在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])
答案 0 :(得分:0)
您只需要遍历result_t
和d
。您可以使用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)