学会把复杂问题拆解成自己已经掌握的基础问题才是正确的学习之道
1.编写一个函数,读入words.txt,并将它们作为键保存到一个字典中
后面还有使用in检查某单词是否在字典中,按说这个并不难,先读取单词表,然后通过将单词作为键,值用空字符就可以了,然后代码如下:
def read_dict():
fin=open('words.txt')
words_dict={}
for line in fin:
word=line.split()
words_dict[word]=''
return words_dict
read_dict()
TypeError Traceback (most recent call last)
in
7 words_dict[word]=''
8 return words_dict
----> 9 read_dict()
in read_dict()
5 for line in fin:
6 word=line.split()
----> 7 words_dict[word]=''
8 return words_dict
9 read_dict()
TypeError: unhashable type: 'list'
但是报错了,具体原因也弄不清楚,只能先把循环单独拿出来比对一下
fin=open('words.txt')
for line in fin:
word=line.split()
print(word)
['aa']
['aah']
['aahed']
['aahing']
['aahs']
['aal']
['aalii']
['aaliis']
['aals']
显示的是这样的,我记得前面读取的时候没有中括号,仔细看发现错在word=line.split(),split是做分割用的,本来这里应该用strip去空格的,只凭记忆写的记混了,然后改一下
def read_dict():
fin=open('words.txt')
words_dict={}
for line in fin:
word=line.split()
words_dict[word]=''
return words_dict
read_dict()
这次显示就正常了,如果只到这没下面的检查单词是否在字典中这段代码是没有问题的,但是要检查一个单词是否在字典的键中就需要用到字典,而在函数中字典是局部引用,没法在别