首页 > 解决方案 > Python3函数将列表映射到字典

问题描述

我有这段代码:


dict1 = ['aa','bb','cc','dd']
dict2 = ['11','22','33','44']
newDict = {}

def map_lists(Dict1, Dict2):
    newDict=dict(zip(dict1, dict2))
    print(newDict)


map_lists(dict1, dict2)

print(newDict)

我想更新“newDict”字典,但我只能使用函数从函数内部打印出映射。

谁能发现我的错误?

标签: pythonpython-3.xfunctiondictionary

解决方案


你需要return从功能。

当您newDict = dict(zip(dict1, dict2))在函数内执行操作时,会创建一个新字典,其范围是函数的本地范围,并且无法在外部访问。

如果您可能在函数之外使用此字典,建议的方法是在函数完成后将新字典返回给调用者。

dict1 = ['aa','bb','cc','dd']
dict2 = ['11','22','33','44']

def map_lists(Dict1, Dict2):
    newDict = dict(zip(dict1, dict2))
    return newDict

newDict = map_lists(dict1, dict2)
print(newDict)


或者,我不会推荐另一种方式,但仅供参考。

dict1 = ['aa','bb','cc','dd']
dict2 = ['11','22','33','44']

def map_lists(Dict1, Dict2):
    global newDict
    newDict=dict(zip(dict1, dict2))

map_lists(dict1, dict2)
print(newDict)

global不建议使用,因为它不是任何语言的良好编程习惯。


推荐阅读