Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中将数组(二维列表)分配给dict?_Python_Arrays_List_Dictionary - Fatal编程技术网

如何在Python中将数组(二维列表)分配给dict?

如何在Python中将数组(二维列表)分配给dict?,python,arrays,list,dictionary,Python,Arrays,List,Dictionary,我想给字典分配一个数组(列表中的列表) 为此,我已经尝试了fromkeys()方法。但这并不像我预期的那样有效 # a list with 3 string elements list_of_Strings = ['index', 'substance', 'container'] # a list with 3 lists, each list has a few values index_list = [0,1,2] substance_list = ['water','oil','acet

我想给字典分配一个数组(列表中的列表)

为此,我已经尝试了fromkeys()方法。但这并不像我预期的那样有效

# a list with 3 string elements
list_of_Strings = ['index', 'substance', 'container']
# a list with 3 lists, each list has a few values
index_list = [0,1,2]
substance_list = ['water','oil','acetone']
container_list = ['B100','B200','B300']
list_of_lists = [index_list, substance_list, container_list]

# this line sets all for all dict keys the value to 0
dict_dummy_1 = dict.fromkeys(list_of_Strings,0)

# when I try this line, in every "key value" are all 3 lists from list_of_lists:
# Key -> Value
# index -> index_list, substance_list, container_list
# substance -> index_list, substance_list, container_list
# container -> index_list, substance_list, container_list
dict_dummy_1 = dict.fromkeys(list_of_Strings,list_of_lists)

# but I want to have it like this:
# Key -> Value
# index -> index_list
# substance -> substance_list
# container -> container_list

# with a loop it is possible:
dict_dummy_2 = dict.fromkeys(list_of_Strings,0)
for i in range(len(list_of_Strings)):
    dict_dummy_2[list_of_Strings[i]] = list_of_lists[i]
是否有可能避免循环解决方案?它有什么功能吗?
提前非常感谢。:)

您可以使用听写理解:

{list_of_Strings[i]: list_of_lists[i] for i in range(len(list_of_Strings))}

下面是一个使用zip的简单oneliner:

dict(zip(list_of_Strings,list_of_lists))
输出

{'index': [0, 1, 2],
 'substance': ['water', 'oil', 'acetone'],
 'container': ['B100', 'B200', 'B300']}

或者
{key:value for key,value in zip(字符串列表,列表列表)}
您可以添加最终输出吗
{'index': [0, 1, 2],
 'substance': ['water', 'oil', 'acetone'],
 'container': ['B100', 'B200', 'B300']}