将文件中的单词添加到字典中

时间:2018-11-24 15:53:38

标签: python dictionary

我想将文本文件中的每个单词添加到字典中,该怎么做?

(我有一个文件'words.txt',我已经打开并读取了文件,单词列表在下面的变量“ lines”中)

d = {}

for i in lines:
    for word in i.split():
        d[???] = word

我将什么代码放在“ ???”位置是吗?

我基本上希望字典看起来像这样:

{0: firstword, 1: secondword, 2: thirdword, 3: fourthword...}

我认为获取列表中每个单词的索引位置是可行的,但是我不确定如何做到这一点。

这似乎并不复杂,但是我被困住了。

5 个答案:

答案 0 :(得分:1)

假设您有一个变量words,其中包含单词列表['firstword', 'secondword', 'thirdword', 'fourthword']

因此您的代码应为:

d = {}
for k, v in enumerate(words):
    d[k] = v

答案 1 :(得分:1)

您可以在单独的变量c中跟踪“当前索引”,并将其用作字典中单词的值:

d = {}
c = 0

for i in lines:
    for word in i.split():
        d[word] = c
        c += 1

请注意,此处的词典将存储重复单词的最高索引。

答案 2 :(得分:1)

每行都将覆盖字典中的前一行。但是您可以像这样解决此问题:

d = {}
k = 0
for i in lines:
    for word in i.split():
        d[str(k)] = word
        k = k + 1

为什么要为此使用字典?当字典与具有含义的键一起使用时,字典很有用。您本可以使用此任务的列表。

此外,您可以通过预分配列表然后使用算法填充列表来提高性能。

答案 3 :(得分:1)

有很多答案质疑为什么,您需要这样做是有效的,但是我将尝试回答直接的问题。另外,我认为处理重复项很有必要。较低的索引(第一次看到单词)优先...这是我的假设,但考虑到您的问题是有道理的。

?

现在您有了字典词:具有唯一词+索引的索引

答案 4 :(得分:1)

首先打开一个文件并写一些行。

mydata = pd.read_csv(file, na_values='?')

out = mydata.isnull().sum()

以您期望的方式枚举单词。如果您使用生成器表达式,则它对dict理解非常有效。

fname = 'textfile.txt'
with open(fname, 'w') as textfile:
    textfile.write('zero one two three four five\n')
    textfile.write('six seven eight nine ten')

这产生了

word_positions = {}
with open(fname, 'r') as textfile:
    words = (word for line in textfile.readlines() for word in line.split())
    word_positions = {i: word for i, word in enumerate(words)}