我正在迭代dict中的旧键。我已经测试了函数外部的for循环并获得了预期的结果但是当我将它放入函数时,它会返回旧的键。
一直拖着论坛,但什么都没有。
edu_dict = {
"A.S":"Attended Vocational/Technical",
"AAS":"Attended Vocational/Technical",...etc}
def clean_edu(edu_dict):
for i in list(edu_dict):
key = i # accesing the key from the edu_dic
lower_case = key.lower() # changing the key to lower case
char_change = "".maketrans(chars_in, chars_out)
clean = lower_case.translate(char_change)
y = re.sub(r'\s\s{1,}','',clean)
edu_dict[y] = edu_dict.pop(i)
return edu_dict
clean_edu(edu_dict)
print(edu_dict)
这似乎是一个简单的解决方案,但我很难过。
答案 0 :(得分:0)
我认为你要么没有将引用传递给clean_edu,要么你没有保存clean_edu的返回值。在这两种情况下,您都要清理字典的副本,而不是按预期更改原始对象。然后打印原始未修改的字典。
答案 1 :(得分:0)
您需要传递对字典的引用,否则您只需在函数中修改它的副本。该函数修改此副本,但在函数外部,原始字典将保持不变。