用Python读取的新值更新列表值

2024-09-29 23:26:47 发布

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

我真的不知道该怎么问这个。我有一个3个值的列表,最初设置为零。然后我一次从用户那里读取3个值,然后我想用我读取的新值更新列表中的3个值。你知道吗

cordlist = [0]*3

输入: 3 4 5个

我希望列表现在看起来像: [3,4,5]

输入: 2 3-6个

列表现在应该是 [5,7,-1]

我该怎么做呢?这就是我所拥有的:

cordlist += ([int(g) for g in raw_input().split()] for i in xrange(n))

但这只是添加了一个新列表,并没有真正更新上一个列表中的值


Tags: 用户in列表forinputrawintsplit
3条回答
cordlist = [v1+int(v2) for v1, v2 in zip(cordlist, raw_input().split())]

这样测试:

l1 = [1,2,3]
l2 = [2,3,4]
print [v1+v2 for v1, v2 in zip(l1, l2)]

结果:[3,5,7]

In [17]: import numpy as np

In [18]: lst=np.array([0]*3)

In [19]: lst+=np.array([int(g) for g in raw_input().split()])

3 4 5

In [20]: lst
Out[20]: array([3, 4, 5])

In [21]: lst+=np.array([int(g) for g in raw_input().split()])

2 3 -6

In [22]: lst
Out[22]: array([ 5,  7, -1])

我会这样做:

cordlist = [0, 0, 0]
for i in xrange(n):
    cordlist = map(sum, zip(cordlist, map(int, raw_input().split())))

分解:

  • map(int, raw_input().split())等价于[int(i) for i in raw_input().split()]
  • zip基本上取一个数字作为一个列表,并返回一个元组列表,其中包含同一索引中的元素。有关详细信息,请参见docs。你知道吗
  • map,正如我前面解释的,对iterable中的每个元素应用一个函数,并返回一个列表。有关详细信息,请参见docs。你知道吗

相关问题 更多 >

    热门问题