我有两个文件,每个文件都包含一个带有“time”的列和一个带有“id”的列,如下所示:
文件 1:
time id
11.24 1
11.26 2
11.27 3
11.29 5
11.30 6
文件 2:
time id
11.25 1
11.26 3
11.27 4
11.31 6
11.32 7
11.33 8
我正在尝试编写一个 python 脚本,该脚本可以将具有匹配 ID 的行的时间相互减去。这些文件的长度不同。
我尝试使用 set(id's of file 1) & set(id's of file 2)
来获取匹配的 id,但现在我卡住了。非常感谢任何帮助,谢谢。
最佳答案
列表理解可以很容易地做到这一点:
#read these from file if you want to, included in this form for brevity
F1 = {1: 11.24, 2: 11.26, 3:11.27, 5:11.29, 6:11.30}
F2 = {1:11.25, 3:11.26, 4:11.27, 6:11.31, 7:11.32, 8:11.33}
K1 = set(F1.keys())
K2 = set(F2.keys())
result = dict([ (k, F1[k] - F2[k]) for k in (K1 & K2)])
print result
这将输出:
{1: -0.009999999999999787, 3: 0.009999999999999787, 6: -0.009999999999999787}
编辑:正如 mhawke 指出的,最后一行可以是:
result = {k: F1[k] - F2[k]) for k in (K1 & K2)}
我完全忘记了听写理解。
关于python - 减去python中的匹配行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11577619/