我正在尝试学习 Python。作为学习过程的一部分,我正在将我用 Java 编写的项目移植到 Python。我现在所在的部分有一个 CSV 标题列表,格式如下:
headers = [a, b, c, d, e, .....]
和单独的组列表,这些标题应该被分解成,例如:
headers_for_list_a = [b, c, e, ...]
headers_for_list_b = [a, d, k, ...]
. . .
我想获取 CSV 数据并将其转换为基于这些组的字典,例如:
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, ... },
. . .
]
例如,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)
...
但是,这种方法似乎效率低下/笨拙,并且不具备 Python 程序员经常谈论的优雅。有没有一种我应该尝试的更“禅宗”的方式 - 与 Python 的哲学保持一致?
最佳答案
试试 Python 的 CSV 模块,尤其是 DictReader 类。
关于python - 使用 Python 将 CSV 列分解为单独的数据结构的最优雅方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2768912/