首页 > 解决方案 > 在二维数组中查找重复数组并将数字添加到元组

问题描述

我有一个数组:

 a = [[(1,2), (3,4)], [(4,5),(3,4)]]
 # Stores list of x,y coordinates

和一个数组:

 b = [(1,2), (3,4)]

现在,我想用 y 坐标 + 2替换a它的等价物。b

因为这里a有等价b于:

[(1,2), (3,4)]

我想替换为a

a = [[(1,4), (3,6)], [(4,5),(3,4)]]

我怎么能这样做?

我知道有一个 numpy 的方法,这样:

np.where(a == b) , do something;

但不确定在这种情况下如何使用它。

标签: pythonnumpytuples

解决方案


不确定是否有好的解决方案numpy,但您可以使用列表理解:

>>> a
[[(1, 2), (3, 4)], [(4, 5), (3, 4)]]
>>> b
[(1, 2), (3, 4)]
>>> c=[[(el_inner[0], el_inner[1]+2) for el_inner in el] if el==b else el for el in a ]
>>> c
[[(1, 4), (3, 6)], [(4, 5), (3, 4)]]

推荐阅读