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'的引用來包含這個副本?如果是這樣,它不會。參數通過對象引用的值傳遞 –