Py学习  »  Python

python3函数将列表映射到字典中

Keefer • 5 年前 • 1336 次点击  

我有这段代码:


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

有人能发现我的错误吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39124
 
1336 次点击  
文章 [ 2 ]  |  最新文章 5 年前
msi_gerva
Reply   •   1 楼
msi_gerva    6 年前

我会这样做:

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)
Austin
Reply   •   2 楼
Austin    6 年前

你需要 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 不建议使用,因为它在任何语言中都不是一个好的编程实践。