Skip to main content
 首页 » 编程设计

Python 列表到字典

2025年05月04日14yyy_WW

我有 2 个索引数量相等的列表。

eg: 
hst = ['host1', 'host2', 'host1', 'host2'] 
err = ['Tomcat', 'Disk Space', 'MySQL', 'Apache'] 

我想将其转换为以下格式的字典:

{'host1': ['Tomcat', 'MySQL'],  
 'host2' : ['Disk Space', 'Apache'], 
} 

请您参考如下方法:

我会使用 zip()功能和dict.setdefault() .示例 -

dic = {} 
for x,y in zip(hst,err): 
    dic.setdefault(x,[]).append(y) 

演示 -

>>> hst = ['host1', 'host2', 'host1', 'host2'] 
>>> err = ['Tomcat', 'Disk Space', 'MySQL', 'Apache'] 
>>> dic = {} 
>>> for x,y in zip(hst,err): 
...     dic.setdefault(x,[]).append(y) 
... 
>>> dic 
{'host2': ['Disk Space', 'Apache'], 'host1': ['Tomcat', 'MySQL']} 

zip()函数将两个列表组合在它们相应的索引处(直到最小数组的索引,但这对你来说不是问题,因为你说我有 2 个索引数量相等的列表。),所以对于第一次迭代,你会得到 x 作为 'host1' 和 y 作为 'Tomcat' ,对于第二次迭代,你会得到 x 作为 'host2' 和 y 作为 'Disk Space' 等

dict.setdefault(key, default)为键设置默认值,如果键不存在于字典中则返回默认值,如果键存在于字典中则返回其值。