社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Keefer • 6 年前 • 1836 次点击  

我有这段代码:


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
文章 [ 2 ]  |  最新文章 6 年前
msi_gerva
Reply   •   1 楼
msi_gerva    7 年前

我会这样做:

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    7 年前

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