繁体   English   中英

Python - 使用列标题作为 csv 文件中字典的键(没有导入模块)

[英]Python - Using column headings as keys for dictionary from csv file (without import module)

我必须使用 .csv 文件提供的值执行一些计算,并且需要使用列标题作为每列中它们的值的键。 然而,文件的列有可能被打乱或交换,因此简单地为每个键的值建立索引是行不通的。 另外请记住,我无法导入任何模块,例如 csv。这是 csv 文件的示例,除了更多的行和更多的 AdultIDs...

成人ID 地标 X Z
R7033 Ex_L -32 -39 -4.6
R7033 恩_L -1.8 -41 6.7
R7033 12 -34 22.6
R7033 恩_R 30.1 -43 8.3

如此有效,我需要这样的字典:{AdultID: [R7033, R7033, R7033], Landmark:[Ex_L, En_R, N, En_R]... } 等等。

假设您的输入文件(我们称之为 luh.csv)是一个格式正确的 CSV,使用逗号作为分隔符,如下所示:

AdultID,Landmark,X,Y,Z
R7033,Ex_L,-32,-39,-4.6
R7033,En_L,-1.8,-41,6.7
R7033,N,12,-34,22.6
R7033,En_R,30.1,-43,8.3

然后:

with open('luh.csv') as csv:
    columns = next(csv).strip().split(',')
    dict_ = {}
    for line in map(str.strip, csv):
        for col, val in zip(columns, line.split(',')):
            dict_.setdefault(col, []).append(val)
    print(dict_)

Output:

{'AdultID': ['R7033', 'R7033', 'R7033', 'R7033'], 'Landmark': ['Ex_L', 'En_L', 'N', 'En_R'], 'X': ['-32', '-1.8', '12', '30.1'], 'Y': ['-39', '-41', '-34', '-43'], 'Z': ['-4.6', '6.7', '22.6', '8.3']}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM