python - 将 CSV 文件的内容转换为字典

标签 python function csv dictionary

到目前为止,我的代码是在一个基本上读取 csv 文件并打印其内容的函数中:

def read(filename):
    with open(filename, 'r') as csvfile:
        reader = csv.reader(csvfile, delimiter=',')
        for row in reader:
            print(row)

sailor.csv 的内容:

name, mean performance , std dev
Alice, 100, 0,
Bob, 100, 5,
Clare, 100, 10,
Dennis, 90, 0,
Eva, 90, 5,

读取('sailor.csv') 并运行函数

当前输出:

['name', ' mean performance ', ' std dev']
['Alice', ' 100', ' 0', '']
['Bob', ' 100', ' 5', '']
['Clare', ' 100', ' 10', '']
['Dennis', ' 90', ' 0', '']
['Eva', ' 90', ' 5', '']

要求的输出:

{'Dennis': (90.0, 0.0), 'Clare':(100.0, 10.0), 
'Eva': (90.0, 5.0), 'Bob': (100.0, 5.0), 'Alice': (100.0, 0.0)}

有什么想法可以实现该输出吗?如果有帮助,请使用 Python 3.4.2,感谢您对答案的解释!

最佳答案

使用csv 标准库和字典理解...

import csv
with open('sailor.csv') as csvfile:
   reader = csv.reader(csvfile)
   next(reader)
   d = {r[0] : tuple(r[1:-1]) for r in reader}

d 将是您想要的字典。 d[1:-1] 将数组从第二个元素切片到倒数第二个元素。

编辑:跳过标题,转换为元组

关于python - 将 CSV 文件的内容转换为字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27393165/

相关文章:

c - 警告 : implicit declaration of function — why does my code work anyway?

php - 如何在函数(PHP)中使用类的方法?

php - 无法使用 php 和 mysql 将包含 unicode 数据的单个 csv 文件导入到多个表

csv - cypher - 加载多个 csv 文件

python - 更改 Airflow DAG 的执行并发

python - 从 Pandas 数据框中选择行的最快方法?

python - Pandas 读取 .csv 并设置索引列

javascript - 我正在阅读 Eloquent Javascript,我对这个部分函数示例有点困惑。请帮忙解释一下

html - Ruby 2.0 CSV 阅读器以不同方式处理 Microsoft Excel 生成的 CSV 文件并且不剥离控制字符

python - 正则表达式模块的奇怪 Python 行为