将return语句作为另一个函数的参数传递

时间:2013-03-13 23:44:31

标签: python

我已经查看了其中的10个答案并且找不到答案,也许我问的是错误的问题,但我要做的是拿一个在fileToDict中创建的字典并使用它作为dictValueTotal的参数来添加所有字典的值并返回该值(将在第三个函数中使用)。是的,这确实是家庭作业,但我想理解它,因为我是python的新手,并且真的不知道如何将返回值传递给另一个函数,并且无法在线或在我们使用此书的书中找到答案我不想为它创建一个类,因为我们没有在课堂上介绍它(看看我在那里做了什么?)。提前谢谢!

收到的错误:首先我没有定义全局变量'd',所以我添加了dictionary = fileToDict(“words1.txt”)行,但现在我收到错误TypeError:'builtin_function_or_method'对象不可迭代< / p>

几乎忘了我的words1.txt看起来像这样,每个字符串/整数在一个单独的行上:     231049254

cat 120935
hat 910256
free 10141

one 9503490
we 102930
was 20951
#

going 48012
to 1029401
program 10293012
    he 5092309

这是操纵它的代码:

import sys

def dictValueTotal (dictionary):
    """dictValueTotal takes in a dictionary and outputs the sum of all the values of the different keys in the input dictionary"""
    valueTotal = sum(dictionary.values)
    return valueTotal


def fileToDict (inFile):
    """takes a name of a file as input and outputs a dictionary containing the contents of that file"""
    fileIn = open(inFile, "r")           #Open a file
    d = {}                           #create a dictionary
    for line in fileIn:
            line = line.strip()          #remove whitespace
            if line == "":               #disregard empty strings
                    continue
            if line[0] == '#':           #disregard lines starting with #
                    continue
            print line                   #debugging purposes
            line = line.split()          #remove duplicated spaces
            print line                   #debugging purposes
            line[1] = int(line[1])
            print line                   #debugging purposes
            key = line[0]
            value = line[1]
            d[key] = value
    print d
    return d
def main():
    fileToDict("words1.txt")
    dictionary = fileToDict("words1.txt")
    dictValueTotal(dictionary)


main()

1 个答案:

答案 0 :(得分:5)

values是一种方法。你需要打电话给它。使用dictionary.values()(注意括号),而不是dictionary.values