0

我正在使用 minidom 来解析 xml 文档。我用 yum 标签获取数据并将它们存储在一个列表中并计算单词的频率。但是,它不会将它们作为字符串存储或读取到列表中。还有另一种方法吗?现在这就是我所拥有的:

yumNodes = [node for node in doc.getElementsByTagName("yum")]

for node in yumNodes:
    yumlist.append(t.data for t in node.childNodes if t.nodeType == t.TEXT_NODE)

for ob in yumlist:
    for o in ob:
        if word not in freqDict:
            freqDict[word] = 1
        else:
            freqDict[word] += 1
4

2 回答 2

1

与您的问题没有直接关系,但作为可以改进您的代码的备注......模式

freqDict = {}
...
if word not in freqDict:
    freqDict[word] = 1
else:
    freqDict[word] += 1

通常被替换为

import collections
freqDict = collections.defaultdict(int)
...
freqDict[word] += 1

或 2.5 之前

freqDict = {}
...
freqDict.setdefault(word, 0) += 1
于 2010-03-31T02:55:05.873 回答
0

代替

yumlist.append(t.data for t in node.childNodes if t.nodeType == t.TEXT_NODE)

具有以下内容:

yumlist.append(t.nodeValue for t in node.childNodes if t.nodeType == 3)
于 2010-03-31T01:40:45.943 回答