繁体   English   中英

比较 2 个元组列表

[英]Comparing 2 list of tuples

我有一个清单:

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

和一个清单:

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

现在,我想用 y 坐标 + 2 替换a >= of, ba y 坐标。

因为这里a有一个等价或更大的b在:

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

我想替a这样:

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

我怎么能这样做?

我知道 numpy 存在一种方法,例如:

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

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

IIUC,比较他们的axis=1+=2

a = np.asarray(a)
b = np.asarray(b)

a[a[:, 1] > b[:, 1], 1] += 2

array([[1, 2],
       [3, 6],
       [4, 5],
       [6, 7]])

没有 numpy:

a = [(1, 2), (3, 4), (4, 5), (6, 7)]
b = [(1, 2), (10, 1), (3, 10), (4, 9)]
c = [(aa[0], aa[1]+2) if aa[1] >= bb[1] else aa for aa, bb in zip(a, b)]

c[(1, 4), (3, 6), (4, 5), (6, 7)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM