python - 如何将数组(二维列表)分配给 Python 中的 dict?
问题描述
我想将一个数组(列表中的列表)分配给字典。
为此,我已经尝试过 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]
有可能避免循环解决方案吗?它有什么功能吗?非常感谢您提前。:)
解决方案
这是一个使用 zip 的简单 oneliner:
dict(zip(list_of_Strings,list_of_lists))
推荐阅读
- c++ - Findopenssl.cmake 找不到 OpenSSL,编译 restbed,C++
- javascript - React.js 状态项数组没有正确更新,甚至没有显示任何错误
- azure - web.config 中的位置 + 路径在 Azure 中不起作用
- css - ion-radio 上的 ionic v4 隐藏收音机图标
- angular - Angular POST 请求保护
- ubuntu - 从另一台计算机访问 gitlab 仪表板
- java - 从外部更改和更新 JPanel 组件,从 JFrame 不工作,Swing
- python - numpy中的元素计算
- java - 如何检查用户输入的字符串是否是Java中的某个字母?
- c# - Unity C# 商店菜单