0

我正在尝试创建一个 python 函数来为我处理一些数据。我有两个看起来像这样的文本文件:

文本文件1:

   89 man
   32 is
   22 the
    3 best

文本文件2:

  54 man
  43 dog
  34 best
  13 dude

textfile1我需要textfile2为单词创建某种类型的函数。请注意,有些词不会出现在两者中,但不应排除它们,因为它们是分析所必需的。我不知道如何进行这部分分析。这些文件有数千行,不幸的是,基本的 bash 脚本不会让你走这么远。

4

1 回答 1

1

我从您的问题中了解到的是,当您在两个文件中找到它们时,您想要计算数字的比率,否则只需打印它们的原始值。你可以这样做:

lines1 = [i.split() for i in open('tmp.txt').readlines()]
values,keys = zip(*lines1)
dict1 = dict( zip(keys,values) )
lines2 = [i.split() for i in open('tmp2.txt').readlines()]
values,keys = zip(*lines2)
dict2 = dict( zip(keys,values) )
dict3 = {}
for k1,v1 in dict1.items():
    v2 = dict2.get(k1)
    if v2:
        dict3[k1] = str(float(v1)/float(v2))
    else:
        dict3[k1] = v1
for k2,v2 in dict2.items():
    if not dict3.get(k2):
        dict3[k2] = v2
out = open('output.txt','w')
out.writelines(['%s\t%s\n' %\
    (k[0],dict3[k[0]]) for k in sorted(dict3.items(), key=lambda x:x[1])])
out.close()
于 2013-06-05T22:07:01.003 回答