如何更改函数中的python字典?

时间:2015-11-19 20:43:46

标签: python python-3.x dictionary

因此我遇到了一个问题,试图让我的字典在函数内更改而不返回任何内容是我的代码:

def load_twitter_dicts_from_file(filename, emoticons_to_ids, ids_to_emoticons):
    in_file = open(filename, 'r')
    emoticons_to_ids = {}
    ids_to_emoticons = {}

    for line in in_file:
        data = line.split()
        if len(data) > 0:
            emoticon = data[0].strip('"')
            id = data[2].strip('"')
            if emoticon not in emoticons_to_ids:
                emoticons_to_ids[emoticon] = []
            if id not in ids_to_emoticons:
                ids_to_emoticons[id] = []

            emoticons_to_ids[emoticon].append(id)
            ids_to_emoticons[id].append(emoticon)

基本上我试图做的是传入两个词典,并用文件中的信息填充它们,但是在我主要调用它并尝试打印两个词典之后它说它们是空的。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

def load_twitter_dicts_from_file(filename, emoticons_to_ids, ids_to_emoticons):
    …
    emoticons_to_ids = {}
    ids_to_emoticons ={}

这两行代替传递给函数的任何内容。因此,如果您将两个词典传递给该函数,那么这些词典永远不会被触及。相反,您创建了两个永远不会传递到外部的新词典。

如果要改变传递给函数的字典,请删除这两行并首先创建字典。

或者,您也可以从最后的函数返回这两个词典:

return emoticons_to_ids, ids_to_emoticons