Skip to main content
 首页 » 编程设计

python之列表到字典之改进

2025年05月04日19fff_TT

下面的代码完成了我想要的,但还有其他更像 python 风格的方式吗?

文件格式:

key1:value1,key2:value2,... 
key21:value21,key22:value22,... 
. 
EOF 

和代码:

file = open(fileName, 'r') 
for lines in file: 
    line = lines.split(",") 
    my_dict = {} 
    for item in line: 
        key_value = item.split(":") 
        my_dict.update({key_value[0]:key_value[1]}) 

谢谢

请您参考如下方法:

一种更快更 pythonic 的方法是使用 csv 模块(默认情况下以逗号分隔)并在双扁平生成器理解中拆分项目提供给接受元组的 dict有 2 个元素:

import csv 
with open("test.csv",newline="") as f:  # replace ,newline="" by ,"rb" in python 2 
    cr = csv.reader(f) 
    d = dict(x.split(":") for row in cr for x in row) 
 
print(d) 

结果:

{'key1': 'value1', 'key22': 'value22', 'key21': 'value21', 'key2': 'value2'} 

非 csv 版本:

import csv 
with open("test.csv") as f: 
    d = dict(x.split(":") for line in f for x in line.split(","))