因此我遇到了一个问题,试图让我的字典在函数内更改而不返回任何内容是我的代码:
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)
基本上我试图做的是传入两个词典,并用文件中的信息填充它们,但是在我主要调用它并尝试打印两个词典之后它说它们是空的。有什么想法吗?
答案 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