def myfunction(list_a, list_b, my_dict):
dict1 = dict(zip(list_a, list_b))
my_dict = copy.deepcopy(dict1)
,但是当我打电话的MyFunction我得到一个emtpty字典...
def myfunction(list_a, list_b, my_dict):
dict1 = dict(zip(list_a, list_b))
my_dict = copy.deepcopy(dict1)
,但是当我打电话的MyFunction我得到一个emtpty字典...
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))
你为什么要制作一个你刚创建的对象的深层副本? – MaxNoe
@MaxNoe你是对的 - 这是不需要的:) – furas
谢谢!但我怎么才能访问返回的字典?我如何参考它? – Eleftheria
对象通过引用的值进行传递,因此将新值赋给函数中的参数不会改变传递给它的对象引用的值。
我建议改为复制副本。
def myfunction(list_a, list_b):
dict1 = dict(zip(list_a, list_b))
return copy.deepcopy(dict1)
如果你想使它成为一个函数,你应该只是简单地返回字典。没有必要给一个解释或作出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))
是Python的,它不需要隐藏到底是怎么回事用户功能。
我需要为不同的列表制作很多次,所以我想尝试做一个功能来为我做所有需要的时间 – Eleftheria
请看到我的更新 – MaxNoe
预期会返回一个值吗? –
你需要一个'return'。 – economy
你是否在调用这个函数,期望你用作参数'my_dict'的引用来包含这个副本?如果是这样,它不会。参数通过对象引用的值传递 –