比较2个元组列表

2024-10-17 06:15:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个清单:

 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替换ina,其中y坐标在a>;=of,b。你知道吗

因为这里ab相等或更大:

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

我想在a中替换,这样它就变成:

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

我怎么能这么做?你知道吗

我知道numpy有一个方法:

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

但我不知道在这个案子里怎么用。你知道吗


Tags: of方法gtnumpynpwheredosomething
2条回答

无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)]

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]])

相关问题 更多 >