Skip to main content
 首页 » 编程设计

python之从列表和逗号分隔行创建 python 字典

2025年05月04日13飞鱼

在 python 中是否有更优雅的方法来从 list 和 创建 dictionary >cs 行 除了一个循环?

my_master_list = ["ABC", "DEF", "GHI"] 
my_list = ["field1", "field2", "field3"] 
my_line = "test1,test2,test3" 
my_dict = {} 
 
for x in my_master_list: 
    my_dict[x] = {} 
    line_parts = my_line.split(",") 
    n = 0 
    for y in my_list: 
        my_dict[x][y] = line_parts[n] 
        n +=1 
 
print my_dict 
# {'ABC': {'field2': 'test2', 'field3': 'test3', 'field1': 'test1'}, 'GHI': {'field2': 'test2', 'field3': 'test3', 'field1': 'test1'}, 'DEF': {'field2': 'test2', 'field3': 'test3', 'field1': 'test1'}} 

请您参考如下方法:

您可以将 zip 与字典理解一起使用:

# construct the inner dictionary  
d = dict(zip(my_list, my_line.split(","))) 
 
# construct the outer dictionary, if you don't want to make copies, you can use  
# {master_key: d ... } directly here just keep in mind they are referring to the same  
# object in this way 
{master_key: d.copy() for master_key in my_master_list} 
 
#{'ABC': {'field1': 'test1', 'field2': 'test2', 'field3': 'test3'}, 
# 'DEF': {'field1': 'test1', 'field2': 'test2', 'field3': 'test3'}, 
# 'GHI': {'field1': 'test1', 'field2': 'test2', 'field3': 'test3'}}