将元组值添加到另一个元组中......但添加了1

时间:2011-01-18 01:49:47

标签: python tuples

我正在使用1个元组,我想创建我正在使用的元组的4个元组变体。例如:

a=(x,y)

我想制作

b=(x+1,y)
c=(x,y+1)

等 等

由于我无法更改元组,有关如何执行此操作的任何想法吗?

3 个答案:

答案 0 :(得分:3)

虽然您无法修改现有元组,但您可以根据现有元组的值创建新元组。我认为这样的事情可能就是你想要的:

>>> a = (1, 2)
>>> [(a[0]+dx, a[1]+dy) for dx, dy in [(-1, 0), (1, 0), (0, 1), (0, -1)]]
[(0, 2), (2, 2), (1, 3), (1, 1)]

这会创建四个元组,每个元组使用列表推导在任一方向上移动xy

答案 1 :(得分:0)

你是说这个?

b=(a[0]+1,a[1])
c=(a[0],a[1]+1)

答案 2 :(得分:0)

def next_to(t, min_x=0, max_x=4, min_y=0, max_y=4):
    x,y = t

    for dx,dy in [(-1,0), (1,0), (0,-1), (0,1)]:
        if (min_x <= x+dx < max_x) and (min_y <= y+dy < max_y):
            yield (x+dx, y+dy)

for t in next_to( (2,2) ):
    print t

结果

(1, 2)
(3, 2)
(2, 1)
(2, 3)