不可用的类型列表python

时间:2014-10-28 03:33:02

标签: python

当我运行我的程序(anagram solver)时,我得到错误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()

2 个答案:

答案 0 :(得分:2)

您只需将列表转回字符串(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)

答案 1 :(得分:0)

sorted python中的内置函数将返回列表。

您的代码行

sortWord = sorted(word)

会以sortWord作为列表。您必须将其转换为python hashable对象。

相关问题