每个元组中如何正确划分数值而不改变结构

2024-09-28 17:20:38 发布

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

我有一个文件列表,我将每个文件拆分为一个单词列表,并计算文件中每个单词的数量;我的元组现在看起来像:

[('fileName1',[('word1',n), ('word2',n), ('word3',n), ('word4',n)],
[('fileName2',[('word1',n), ('word2',n), ('word3',n), ('word4',n)],
...
[('fileNameM',[('word1',n), ('word2',n), ('word3',n), ('word4',n)]]

(n—文件中的字数)
现在我需要将每个n(对于每个文件名)除以总数,如: (tn-总数)

[('fileNameM',[('word1',n/tn), ('word2',n/tn), ('word3',n/tn), ('word4',n/tn)]]

不要改变元组的结构

我成功地创建了新的RDD,如:

[(('fileNameM',[('word1',n), ('word2',n), ('word3',n), ('word4',n)]), tn]

newRDD = oldRDD.map(lambda f: (f,sum(n for w,n in f[1]))

但是如果你仔细看一看,tuble的结构发生了很大的变化,并不能解决我的问题。你知道吗

我试过这个,但还是有麻烦。你知道吗

newRDD = oldRDD.map(lambda f: (f[0], [w,n/sum(n for w,n in f[1]) for w,n in f[1]]))

非常感谢


Tags: 文件in列表for单词结构tn元组