为文件中的单词创建字典的函数
Function that creates a dictionary for words in a file
我正在尝试创建一个函数,它为特定文件中的每个单词添加一个新键到字典中,并作为其值添加该单词之后的每个单词的列表。
由于某种我无法弄清楚的原因,我的代码无法正常工作。这是:
def mimica(input_file):
d = {}
f = open(input_file)
w = f.read().split()
f.close()
a = len(w)
for i in range(0, a):
word = []
b = i + 1
for a in range(b, a):
word.append(w[a])
d[w[i]] = word
return d
我的文件是这样的:
Car yellow and fast
Toy black and fun
Person tall and nice
这是我函数的输出:
{'and': [], 'Toy': ['black', 'and', 'fun'], 'Car': ['yellow', 'and', 'fast', 'Toy', 'black', 'and', 'fun', 'Person', 'tall', 'and', 'nice'], 'fast': ['Toy', 'black', 'and', 'fun', 'Person'], 'Person': [], 'black': ['and'], 'yellow': ['and', 'fast', 'Toy', 'black', 'and', 'fun', 'Person', 'tall', 'and'], 'fun': [], 'tall': [], 'nice': []}
感谢您的帮助。
for a in range(b, a):
您正在使用此循环覆盖 a
的先前值。尝试将名称更改为其他名称。
for x in range(b, a):
word.append(w[x])
结果:
{
'Car': ['yellow', 'and', 'fast', 'Toy', 'black', 'and', 'fun', 'Person', 'tall', 'and', 'nice'],
'yellow': ['and', 'fast', 'Toy', 'black', 'and', 'fun', 'Person', 'tall', 'and', 'nice'],
'fast': ['Toy', 'black', 'and', 'fun', 'Person', 'tall', 'and', 'nice'],
'Toy': ['black', 'and', 'fun', 'Person', 'tall', 'and', 'nice'],
'black': ['and', 'fun', 'Person', 'tall', 'and', 'nice'],
'fun': ['Person', 'tall', 'and', 'nice'],
'Person': ['tall', 'and', 'nice'],
'tall': ['and', 'nice'],
'and': ['nice'],
'nice': []
}
(为清楚起见,我添加了空格)
我正在尝试创建一个函数,它为特定文件中的每个单词添加一个新键到字典中,并作为其值添加该单词之后的每个单词的列表。 由于某种我无法弄清楚的原因,我的代码无法正常工作。这是:
def mimica(input_file):
d = {}
f = open(input_file)
w = f.read().split()
f.close()
a = len(w)
for i in range(0, a):
word = []
b = i + 1
for a in range(b, a):
word.append(w[a])
d[w[i]] = word
return d
我的文件是这样的:
Car yellow and fast
Toy black and fun
Person tall and nice
这是我函数的输出:
{'and': [], 'Toy': ['black', 'and', 'fun'], 'Car': ['yellow', 'and', 'fast', 'Toy', 'black', 'and', 'fun', 'Person', 'tall', 'and', 'nice'], 'fast': ['Toy', 'black', 'and', 'fun', 'Person'], 'Person': [], 'black': ['and'], 'yellow': ['and', 'fast', 'Toy', 'black', 'and', 'fun', 'Person', 'tall', 'and'], 'fun': [], 'tall': [], 'nice': []}
感谢您的帮助。
for a in range(b, a):
您正在使用此循环覆盖 a
的先前值。尝试将名称更改为其他名称。
for x in range(b, a):
word.append(w[x])
结果:
{
'Car': ['yellow', 'and', 'fast', 'Toy', 'black', 'and', 'fun', 'Person', 'tall', 'and', 'nice'],
'yellow': ['and', 'fast', 'Toy', 'black', 'and', 'fun', 'Person', 'tall', 'and', 'nice'],
'fast': ['Toy', 'black', 'and', 'fun', 'Person', 'tall', 'and', 'nice'],
'Toy': ['black', 'and', 'fun', 'Person', 'tall', 'and', 'nice'],
'black': ['and', 'fun', 'Person', 'tall', 'and', 'nice'],
'fun': ['Person', 'tall', 'and', 'nice'],
'Person': ['tall', 'and', 'nice'],
'tall': ['and', 'nice'],
'and': ['nice'],
'nice': []
}
(为清楚起见,我添加了空格)