[英]Is it possible to create a dictionary inside a function using python?
我正在尝试以下
def myfunction(list_a, list_b, my_dict):
dict1 = dict(zip(list_a, list_b))
my_dict = copy.deepcopy(dict1)
但是当我调用myfunction时,我得到了一个空字典...
def myfunction(list_a, list_b):
dict1 = dict(zip(list_a, list_b))
return copy.deepcopy(dict1)
my_dict = myfunction(some_list_a, some_list_b)
正如MaxNoe所注意到的-不需要Deepcopy
def myfunction(list_a, list_b):
return dict(zip(list_a, list_b))
my_dict = myfunction(some_list_a, some_list_b)
甚至
my_dict = dict(zip(some_list_a, some_list_b))
如果要使其成为函数,则只需返回dict。 无需提供字典或进行deepcopy
:
def dict_from_lists(keys, vals):
return dict(zip(keys, vals))
my_dict = dict_from_lists(list_a, list_b)
但是对于仅使用内置函数的一行代码,我通常不会编写函数。
在我看来
my_dict = dict(zip(list_a, list_b))
是pythonic的,它不需要隐藏正在发生的事情的用户函数。
对象是通过引用的值传递的,因此在函数内为参数分配新值不会更改传递给它的对象引用的值。
我建议退回副本。
def myfunction(list_a, list_b):
dict1 = dict(zip(list_a, list_b))
return copy.deepcopy(dict1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.