Python 有没有办法向列表中元组的第一部分添加数字?

Python 有没有办法向列表中元组的第一部分添加数字?,python,list,tuples,Python,List,Tuples,因此,我有一个列表,例如: a = [(1,2),(2,3)] 我想知道是否有办法在元组的第二部分添加一个数字,比如说2 a = [(1,4),(2,5)] 您可以使用: 您可以使用列表: a = [(1,2), (2,3)] a = [(x, y+2) for (x,y) in a] 给予 a = [(1,4),(2,5)] 您可以使用map函数生成具有所需值的新元组。这篇文章讨论了map函数。你也可以谷歌地图功能编程 元组是不可变的,因此一旦创建元组,就不能对其进行修改。但是,您可以

因此,我有一个列表,例如:

a = [(1,2),(2,3)]
我想知道是否有办法在元组的第二部分添加一个数字,比如说2

a = [(1,4),(2,5)]
您可以使用:


您可以使用列表:

a = [(1,2), (2,3)]
a = [(x, y+2) for (x,y) in a]
给予

a = [(1,4),(2,5)]

您可以使用map函数生成具有所需值的新元组。这篇文章讨论了map函数。你也可以谷歌地图功能编程


元组是不可变的,因此一旦创建元组,就不能对其进行修改。但是,您可以使用基于第一个元组的值替换列表中的元组,如下所示:

for i, tup in enumerate(list_of_tuples):
    list_of_tuples[i] = (tup[0], tup[1]+2)
另一种解决方案是基于原始列表中的元组创建具有值的新列表。下面是一个列表理解,它创建一个新的元组列表,将现有列表中每个元组的第二个值乘以2:

new_list = [(a, b+2) for a, b in orig_list]

关于如何使用
tuple
,您已经得到了答案。但是如果你知道你会修改它们,那么你应该考虑一个不可变类型是否是正确的选择。 为了便于比较,如果您有一个
列表
列表
,则工作量要少得多(cpu方面)

因为您不需要创建一个全新的数据结构并将值复制到其中进行修改

如果numpy阵列被证明是一个合适的选择,那么广播添加内容就更容易了

>>> import numpy as np
>>> a = np.array([(1,2), (2,3)])
>>> a[:, -1] += 2
>>> a
array([[1, 4],
       [2, 5]])
>>> a = [[1,2],[2,3]]
>>> for i in a: i[1] += 2
... 
>>> a
[[1, 4], [2, 5]]
>>> import numpy as np
>>> a = np.array([(1,2), (2,3)])
>>> a[:, -1] += 2
>>> a
array([[1, 4],
       [2, 5]])