Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.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
棘手的Python3.5CSV难题-从CSV文件高效地创建100个列表,而无需每次引用标准_Python_Csv - Fatal编程技术网

棘手的Python3.5CSV难题-从CSV文件高效地创建100个列表,而无需每次引用标准

棘手的Python3.5CSV难题-从CSV文件高效地创建100个列表,而无需每次引用标准,python,csv,Python,Csv,我的项目是选取100种不同的颜色,收集人们对它们的一个词的反应。所以有两列:颜色和反应。大约有600例我的目标是对同一种颜色的每一种反应进行分析,并将它们合并到某种列表中。 所以,我需要将所有的反应都放到一个特定的颜色中,并将它们合并到一个列表中,然后调用这个变量[color]\u all\u reactions 如果只有(比如)三种颜色,我可以迭代与指定颜色相关的每个反应,将这些颜色添加到列表中。但是我有太多的颜色来做这件事。我需要写一些东西来迭代所有反应,为每个唯一颜色创建一个所有反应列表,

我的项目是选取100种不同的颜色,收集人们对它们的一个词的反应。所以有两列:颜色和反应。大约有600例我的目标是对同一种颜色的每一种反应进行分析,并将它们合并到某种列表中。

所以,我需要将所有的反应都放到一个特定的颜色中,并将它们合并到一个列表中,然后调用这个变量[color]\u all\u reactions

如果只有(比如)三种颜色,我可以迭代与指定颜色相关的每个反应,将这些颜色添加到列表中。但是我有太多的颜色来做这件事。我需要写一些东西来迭代所有反应,为每个唯一颜色创建一个所有反应列表,然后将与每个唯一颜色相关的内容附加到该颜色的所有反应列表中


。我想知道是否有人能给我指出正确的方向

使用字典。

创建一个以
color
为键、反应列表为
value
的字典。这样,迭代它将是轻而易举的事

专业提示-


使用
collections.defaultdict
而不是常规的
dict

您可以使用类似这样的方法

color_reactions = dict()
with open('color_reactions.csv', 'r') as f:
    for line in f:
        color, reaction = line.strip().split(',')
        color_reactions.setdefault(color, []).append(reaction)

反应对象可以是
defaultdict(int)
,而不是列表。这样他就可以计算出每一种反应的发生次数。@Roberto这是个好主意。