首页 > 解决方案 > 如何将字典中键的值打印为列表?

问题描述

我有一个应该作为字典阅读的 .csv 文件。每个键应该是一个字符串,而该键的值应该是一个列表。

实际的 csv 文件: csv 文件

预期输出:

预期产出

import csv
import sys


if len(sys.argv) != 2 :
    print("Usage: csvToDict.py <filename>")
    sys.exit(1)

file_name = sys.argv[1]
with open(file_name, "r") as file :
    reader = csv.DictReader(file)
    for row in reader:
        for key in row:
            print(row[key], end='')
        print()

使用此代码,它将所有行打印为值(标题除外,它被视为键)

我的输出:

我的输出

如何获得所需的输出?

标签: pythonpython-3.x

解决方案


听起来您想将给定列的所有值作为列表获取。

如果是这种情况,这样的事情应该可以工作:

from collections import defaultdict

...

all_values = defaultdict(list)

with open(file_name, "r") as file :
    reader = csv.DictReader(file)
    for row in reader:
        for key, value in row.items():
            all_values[key].append(value)


推荐阅读