我有一个元组列表(每个元组项是一对整数),我想为列表中的每个元组添加一个常量值。
例如 [(x0,y0),(x1,y1),...] - > [(x0 + xk,y0 + yk),(x1 + xk,y1 + yk)....]
xk,yk是常数
我该怎么做
由于
答案 0 :(得分: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]]
答案 1 :(得分: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]
答案 2 :(得分:3)
您不能向元组添加常量,因为元组是不可变的。
然而,您可以通过递增它的值来创建旧元组。有关如何执行此操作的基础知识,请参阅jae的答案。
但是你应该注意到,你将在这个循环中创建许多新的元组,这可能不是一个非常有效的方法来处理它。您应该调查numpy(由nikow建议)或者可能使用列表或坐标对象而不是元组。
答案 3 :(得分:0)
向元组添加内容的示例
>>> a=(1,2)
>>> a+=(1,)
>>> a
(1, 2, 1)
您可以根据您的要求进行调整
答案 4 :(得分:0)
解决方案:
l = [(i[0]+k[0], i[1]+k[1]) for i in l]
测试代码:
l = [(1,2), (3,4)]
k = (10, 100)
l = [(i[0]+k[0], i[1]+k[1]) for i in l]
assert l == [(11, 102), (13, 104)]