我正在尝试创建一个单词字典,将单词散列为整数以作进一步处理。是否可以使用defaultdict的变体来避免检查if word not in wordid。这是一个非常大的文件,并且需要省时的方法。

 wordid=defaultdict(int)
 totaluniquewords = 0
 for word in sentencewords:
    if word not in wordid:
        totaluniquewords+=1
        wordid[word]=totaluniquewords

最佳答案

这是一种更简单,更快捷的方式来获取您想要的东西:

from itertools import count

wordid = dict(zip(set(sentencewords), count(1)))


这使用set来获取sentencewords中的唯一词,将每个唯一词与count()中的下一个值(向上计数)配对,并根据结果构建字典。

关于python - defaultdict的变体,仅分配一次值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33503743/

10-12 19:26