簡體   English   中英

Python TypeError:序列項0:預期的str實例,發現NoneType

[英]Python TypeError: sequence item 0: expected str instance, NoneType found

我從一本書中復制了以下代碼:

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

怎么了?

getWord函數不會顯式返回任何內容,因此它隱式返回None 嘗試返回一些東西,例如:

def getWord(word):
    return lyst.get(word, word)

問題是您正在嘗試將類型為NoneType的字符串寫入。 那是不允許的。

如果您對獲取None值感興趣,可以做的一件事情就是將它們轉換為字符串。

您可以通過列表理解來做到這一點,例如:

return ''.join([str(x) for x in map(getWord, sentence.split())])

但是在這種情況下,要正確執行此操作,您必須在內部函數上返回某些內容,否則就需要return None

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM