[英]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.