gpt4 book ai didi

python - linux 文件中每行下面的总和行

转载 作者:太空宇宙 更新时间:2023-11-04 11:01:32 25 4
gpt4 key购买 nike

我有这样的输入

A  100
B 150
C 200
D 250
E 300

我想要的输出是上面所有元素的总和:像这样

   A to A - 100
A to B - 250
A to C - 450
A to D - 700
A to E - 1000
B to B - 150
B to C - 350
B to D - 600
B to E - 900
C to C - 200
C to D - 450
C to E - 650
D to D - 250
D to E - 550
E to E - 300

文件大小约为 250 MB。我写了一个 python 程序,它首先将每一行存储在字典中。但是我认为对于大投入是不可行的。我是使用 Linux 的初学者。

最佳答案

这只是存储值和嵌套循环的问题:

awk '
{ label[NR]=$1; val[NR]=$2 }
END {
for (i=1; i<=NR; i++) {
sum = 0
for (j=i; j<=NR; j++) {
sum += val[j]
print label[i] " to " label[j] " - " sum
}
}
}
' file

我认为这对于大文件来说仍然会很慢(你必须将整个文件存储在内存中,并且它是一个 O(N^2) (或者是 O(NlogN),已经有一段时间了......)执行嵌套循环的操作。我怀疑将数据放入数据库中会帮助你解决问题。

关于python - linux 文件中每行下面的总和行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26873046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com