我从一本书中复制了这段代码:
lyst = {'Hi':'Hello'}
def changeWord(sentence):
def getWord(word):
lyst.get(word, word)
return ''.join(map(getWord, sentence.split()))
我收到此错误:
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
cambiaPronome('ciao')
File "C:\Python33\2.py", line 6, in cambiaPronome
return ''.join(map(getWord, list(frase)))
TypeError: sequence item 0: expected str instance, NoneType found
有什么问题?
答案 0 :(得分:2)
getWord
函数没有显式返回任何内容,因此隐式返回None
。尝试返回一些东西,例如:
def getWord(word):
return lyst.get(word, word)
答案 1 :(得分:0)
问题是您是否正在尝试将字符串写入NoneType类型。这是不允许的。
如果您对获取None
值感兴趣,那么您可以做的一件事就是将它们转换为字符串。
你可以使用列表理解来完成它,例如:
return ''.join([str(x) for x in map(getWord, sentence.split())])
但是要在这种情况下正确地做到这一点,你必须在内部函数上返回一些东西,否则你有相当于return None