簡體   English   中英

無法散列的類型列表python

[英]Unhashable type list python

當我運行程序(字母解算器)時,出現錯誤Unhashable type:list,多數民眾贊成在我將wordList轉換為元組時,但仍然收到錯誤。

word.txt包含一堆單詞,例如word.txt

abruptly
abruptness
abs
abscam

這是代碼:

def main():
    lenWord = 4
    wordList = readMatrix()
    lengthWord(lenWord)

def readMatrix():
    wordList = []
    strFile = open("words.txt", "r")
    lines = strFile.readlines()
    for line in lines:
        word = line.rstrip().lower()
        wordList.append(word)
    return tuple(wordList)

def lengthWord(lenWord):
    wordList = readMatrix()
    for word in wordList:
        if len(word) == lenWord:
            sortWord = sorted(word)
            setWord = set(word)
            sortDict = ({sortWord : setWord})
    return sortDict

main()

您可以將列表重新轉換為字符串( str

sortWord = ''.join(sorted(word))

其他合適的選擇可以是tuplefrozenset

下一行雖然是一個錯誤-只是字母集

setWord = set(word)

您需要將值設為包含實際單詞的集合。

例如。

sortWord = ''.join(sorted(word))
if sortWord not in sortDict:
    sortDict[sortWord] = set()
sortDict[sortWord].add(setWord)

在python中sorted內置函數將返回您的列表。

您的代碼行

sortWord = sorted(word)

將給您sortWord作為列表。 您必須將其轉換為python hashable對象。

暫無
暫無

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

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