Python3函数将列表映射到字典

时间:2018-09-16 15:29:40

标签: python python-3.x function dictionary

我有这段代码:


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”字典,但是我只能进入该函数以从函数内部打印出映射。

有人能发现我的错误吗?

2 个答案:

答案 0 :(得分:1)

您需要通过功能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,因为它不是任何语言的良好编程习惯。

答案 1 :(得分:0)

我会这样:

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

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

newDict = map_lists(dict1, dict2)

print(newDict)