如果A=X,则只保留list1中的元素(A,B),其中(X,Y)是list2的元素。

2024-04-29 01:05:41 发布

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

我需要python或者bash来解决这个问题。
我有两个列表(或者更确切地说是文本文件):

文件1:
A1 B1
A2 B2
A3 B3
...

文件2:
X1 Y1
X2 Y2
X3 Y3
...

我需要计算所有N的(BN-YN),其中(AN=XN)文件3如下所示:

文件3:
AN(=XN)BN-YN
AM(=XM)BM-YM
...

如果我能选择A和X的所有相交元素(并将元素B关联起来),这将很容易,因为X是A的子集


Tags: 文件bashana2元素列表a1b2
1条回答
网友
1楼 · 发布于 2024-04-29 01:05:41

Awk比bash更适合于文本操作任务。以下是awk one班轮的外观:

$ head file{1,2}
==> file1 <==
1 10
3 11
5 12

==> file2 <==
5 5
3 6

$ awk 'NR==FNR{a[$1]=$2;next}$1 in a{print $1,a[$1]-$2}' file1 file2
5 7
3 5

这里需要注意的是,我们将整个file1存储在内存中,因此如果file1非常大,您就不想使用这种方法

相关问题 更多 >