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]])