新的lin之后,如何将输入存储在列表中

2024-04-26 09:20:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,我尝试在T行中多次输入2个数字,然后将其存储在一个列表中,并计算列表中每两对数字的总和,但我的列表只存储最后两个输入的数字。它不会在最后一条新生产线之前储存任何东西。如何存储所有输入?你知道吗

from operator import add
t = int(input())
i =  0
while i < t:
    n = input()
    L = list(map(int, n.split()))
    i += 1
sumL = (list(map(add, *[iter(L)]*2)))
print (sumL)

Tags: fromimportaddmap列表input数字operator
2条回答

您正在重新定义每个循环交互中的列表。你知道吗

您需要在循环外部定义list,并在循环内部追加。你知道吗

另外,我不知道你想做什么。你知道吗

代码

t = int(raw_input("T: "))

x_sum = 0
y_sum = 0

for i in range(t):
    n = raw_input("%s: " % (i+1)).strip()
    x, y = n.split(' ')
    x_sum += int(x)
    y_sum += int(y)

print (x_sum, y_sum)

输出

$ python test.ph
T: 2
1: 1 1
2: 2 2
(3, 3)

在循环外初始化并附加L = list(map(int, n.split()))在每次迭代中创建一个新列表,还可以使用range

L = []
for _ in range(t):
    n = input()
    L.append(list(map(int, n.split())))

或使用列表组件:

L = [list(map(int, input().split())) for _ in range(t)]

您应该知道,如果用户输入不能转换为int的任何内容,将出现错误,也不能保证用户将输入可以拆分为两个数字的数据,因此理想情况下您将使用try/except并验证输入。你知道吗

您也可以list(map(sum,L)

L = [[1,2],[3,4]]

print(list(map(sum,L)))
[3, 7]

相关问题 更多 >