Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 来自csv文件的字典_Python_Loops_Csv_Dictionary - Fatal编程技术网

Python 来自csv文件的字典

Python 来自csv文件的字典,python,loops,csv,dictionary,Python,Loops,Csv,Dictionary,因此,我有一个csv文件,格式如下: a.year是所有年份 a.category是所有类别 等 可以有多于或少于四列 a.year,a.category,a.actor,a.title 2010,Actor-Leading Role,Colin Firth,The King's Speech 2010,Actor-Supporting Role,Christian Bale,The Fighter 2010,Actress-Leading Role,Natalie Portman,Blac

因此,我有一个csv文件,格式如下:

  • a.year
    是所有年份
  • a.category
    是所有类别
可以有多于或少于四列

a.year,a.category,a.actor,a.title
2010,Actor-Leading Role,Colin Firth,The King's Speech
2010,Actor-Supporting Role,Christian Bale,The Fighter
2010,Actress-Leading Role,Natalie Portman,Black Swan
2010,Actress-Supporting Role,Melissa Leo,The Fighter
2009,Actor-Leading Role,Jeff Bridges,Crazy Heart
我该如何制作一个以键作为标题,并将该键下面的所有值作为映射到该键的列表的字典。比如:

{a.year:['2010', '2010', '2010', '2010', '2009'], 
 ... and so on} 
对于所有键和值。你知道怎么做吗

到目前为止,我已尝试使用for循环遍历各行,但我不知道下一步该怎么做。

尝试此操作---打开文件,将列作为值映射到标题:

f = open("data.csv","r")
lines = list(map(lambda x: x.split(","),f.readlines())
f.close()

dictionary = {}
for i in range(len(lines[0])): 
    dictionary[lines[0][i]] = list(map(lambda x:lines[x][i], range(1,len(lines))))

你说:到目前为止,我已经尝试使用for循环…来循环这些行,所以请向我们展示你尝试的内容,并解释它是如何不起作用的。使用csv.dictreader到底做了什么?你可能想要解决的问题是,所有内容的类型都将是字符串。如果您知道哪一列应该是字符串或int,则可能需要适当地强制转换这些值。