无法将值添加到python字典并写入文件 [英] Unable to add Value to python dictionary and write to a file
问题描述
我正在尝试检查dict
中是否存在单词.如果不是这样,我将key
和value
添加到dict
:
mydict = {}
with io.open("fileo.txt", "r", encoding="utf-8") as fileo:
for Word in filei:
Word = Word.split()
if not Word in dict:
dict[Word] = 1
elif Word in dict:
dict[Word] = dict[Word] + 1
print [unicode(i) for i in dict.items()]
它抛出以下错误:
if not Word in dict:
TypeError: unhashable type: 'list'
如果我删除了Word = Word.split()
部分,则可以使用,但是会考虑整行.那对我没有帮助.如您所见,我想计算每个单词.
Word = Word.split()
将使Word
成为列表,并且您不能将list
(或任何其他不可散列的类型)用作字典键.>
您应该考虑使用 collections.Counter
,但是稍微修改您现有的代码:
with io.open("fileo.txt", "r", encoding="utf-8") as filei:
d = dict()
for line in filei:
words = line.strip().split()
for word in words:
if word in d:
d[word] += 1
else:
d[word] = 1
print d
print [unicode(i) for i in d.items()]
I am trying to check if a word exists in the dict
. If does not that I will add the key
and value
to the dict
:
mydict = {}
with io.open("fileo.txt", "r", encoding="utf-8") as fileo:
for Word in filei:
Word = Word.split()
if not Word in dict:
dict[Word] = 1
elif Word in dict:
dict[Word] = dict[Word] + 1
print [unicode(i) for i in dict.items()]
It throws below error:
if not Word in dict:
TypeError: unhashable type: 'list'
If I remove the Word = Word.split()
part it works, but entire line is considered. That will not help me. I want to count every word as you can see.
Word = Word.split()
will make Word
a list, and you cannot have a list
(or any other unhashable type) as a dictionary key.
You should consider using collections.Counter
, but to slightly modify your existing code:
with io.open("fileo.txt", "r", encoding="utf-8") as filei:
d = dict()
for line in filei:
words = line.strip().split()
for word in words:
if word in d:
d[word] += 1
else:
d[word] = 1
print d
print [unicode(i) for i in d.items()]
这篇关于无法将值添加到python字典并写入文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!