向元组列表添加常量元组值

1 投票
5 回答
7888 浏览
提问于 2025-04-15 19:40

我有一个包含元组的列表(每个元组里的元素是一对整数),我想给列表中的每个元组都加上一个固定的值。

比如说,原来的列表是:
[(x0,y0),(x1,y1),...] -> 加上固定值后变成:[(x0+xk,y0+yk),(x1+xk,y1+yk)....]

这里的xk和yk就是那些固定值。

我该怎么做呢?

谢谢!

5 个回答

3

你不能给一个元组加常量,因为元组是不可变的。

不过,你可以通过增加它的值来从旧的元组创建一个新的元组。可以看看jae的回答,了解基本的操作方法。

不过要注意,在这个循环中你会创建很多新的元组,这样做可能效率不高。你可以考虑使用numpy(nikow建议的)或者使用列表或坐标对象来代替元组。

4

使用 numpy,比如:

>>> import numpy as np
>>> a = np.array([[1,2],[2,3]])
>>> print a
[[1 2]
 [2 3]]
>>> print a + 2
[[3 4]
 [4 5]]
3
>>>> l = [(1,2), (3,4)]
>>>> for i, e in enumerate(l):
....     l[i] = (e[0]+xk, e[1]+yk)
>>>> l = [(e[0]+xk, e[1]+yk) for e in l]

和往常一样,这个代码没有经过测试。;-)

如果你不需要在原地进行操作,那就更简单了。

撰写回答