打印字典的所有元素?蟒

时间:2016-11-23 20:21:17

标签: python dictionary

我似乎无法弄清楚如何打印字典的所有元素!我不断收到错误,说它没有定义。

我正在使用的文件(mood.txt):

happy, Jennifer Clause
happy, Jake Foster
sad, Jonathan Bower
mad, Penny
excited, Logan 
awkward, Mason Tyme

我的代码:

def theFile():
    moodFile = open("mood.txt")
    theMood = moodFile.readlines()
    moodFile.close()
    return(theMood)

def makeTheDict(myFile):
    moodDict = {}

    for lines in myFile:
        (mood, name) = lines.split(",")

        moodDict[mood] = name.strip()

    return(moodDict)


def printMood(mood, moodDict):

    if mood in moodDict:
        print("The people who are", mood, ":", moodDict[mood])


def allMoods(moodDict):

    #code I am having trouble with
    for moods in moodDict:
        print(mood, moodDict[moods])


def main():

    moodFile = theFile()

    moodDict = makeTheDict(moodFile)

    findMood = input("Which mood do you want to choose?: ")
    printMood(findMood, moodDict)

    allMoods(moodDict)

我正在尝试打印函数allMoods()中的所有情绪。每当我从print(mood, moodDict[moods])中删除情绪时,它会打印出所有的名字,但是当我插入情绪时,它表示没有定义。

我尝试在printMood(mood, moodDict)内调用allMoods(),但我无法让它工作!

如何用他们的名字打印每个人的心情?谁能帮忙!谢谢!

1 个答案:

答案 0 :(得分:0)

此例程中您有moodsmood。你只需要其中一个。 mood似乎最好。

def allMoods(moodDict):
    for mood in moodDict:
        print(mood, moodDict[mood])

随着这种变化,一切正常。它现在有效,因为您已在mood循环中定义了for,之前您在mood调用,但从未将其定义或设置为任何内容。