使用Python将CSV列拆分为单独数据结构的最优雅方法?

Nic*_*k L 2 python csv data-structures

我正在尝试接收Python.作为学习过程的一部分,我将用Java编写的项目移植到Python中.我现在在一个部分,我有一个表格的CSV标题列表:

headers = [a, b, c, d, e, .....]
Run Code Online (Sandbox Code Playgroud)

以及应将这些标题分解为的单独的组列表,例如:

headers_for_list_a = [b, c, e, ...]
headers_for_list_b = [a, d, k, ...]
. . .
Run Code Online (Sandbox Code Playgroud)

我想获取CSV数据并根据这些组将其转换为dict,例如:

list_a = [
          {b:val_1b, c:val_1c, e:val_1e, ... },
          {b:val_2b, c:val_2c, e:val_2e, ... },
          {b:val_3b, c:val_3c, e:val_3e, ... },
          . . . 
         ]
Run Code Online (Sandbox Code Playgroud)

例如,val_1b是'b'列的第一行,val_3c是'c'列的第三行,等等.

我的第一个"Java本能"是做类似的事情:

for row in data:
    for col_num, val in enumerate(row):
        col_name = headers[col_num]
        if col_name in group_a:
            dict_a[col_name] = val
        elif headers[col_cum] in group_b:
            dict_b[col_name] = val
        ...
    list_a.append(dict_a)
    list_b.append(dict_b)
    ...     
Run Code Online (Sandbox Code Playgroud)

然而,这种方法似乎效率低下/笨拙,并且不具备Python程序员经常谈论的优雅.有没有更像"禅宗"的方式我应该尝试 - 保持Python的哲学?

小智 5

试试Python的CSV模块,特别是DictReader类.