Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.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文件_Python_Collections - Fatal编程技术网

将集合对象写入Python文件

将集合对象写入Python文件,python,collections,Python,Collections,我有一个集合对象,如下所示: Counter({'Saree': 5679, '': 4860, 'Cotton': 4201, 'Printed': 3715}) 我想生成一个包含键和值的CSV文件,按值的降序排序 A B Saree 5679 4860 Cotton 4201 Printed 3715 我尝试了下面的代码,其中value是一个列表,如['Saree','','Cotton','printed']: for k, v in sorted(colle

我有一个
集合
对象,如下所示:

Counter({'Saree': 5679, '': 4860, 'Cotton': 4201, 'Printed': 3715})
我想生成一个包含键和值的CSV文件,按值的降序排序

A      B
Saree  5679
       4860
Cotton 4201
Printed 3715
我尝试了下面的代码,其中
value
是一个列表,如
['Saree','','Cotton','printed']

for k, v in sorted(collections.Counter(value)):
    f.write(k+delimiter+v)
但自从我假设集合对象只是一个字典之后,这就不起作用了

我得到的错误如下: ValueError:需要0个以上的值才能解包


由于您似乎希望首先看到最高计数,计数器的
most_common()
方法会为您提供一个
(键,值)
对列表,其中的项按值排序。然后可以遍历该列表,打印出键和值,如下所示

for k, v in c.most_common():
    print "{:10} {:4}".format(k, v)
给予

Saree      5679
           4860
Cotton     4201
Printed    3715
好的,您需要一个CSV文件(我们应该以某种方式进行直觉)。这将完成以下工作:

with open("file.csv", "wb") as f:
    w = csv.writer(f)
    w.writerows(c.most_common())

我相信您将能够处理添加列标题的问题。

“未起作用”不会告诉我们出了什么问题。异常回溯可能会发生。已排序的部件(collections.Counter(value))看起来可疑。那里的
值是多少?指向您拥有的集合的变量的名称是什么?若要将其写入文件,您可以使用或其他方法。然后,当您读回它时,只需将普通字典转换为计数器。到底是什么问题?为什么不干脆
pickle
it?或者你在问如何将它们按顺序写入文件?在这种情况下,请尝试
您的\u计数器。most\u common()
with open("file.csv", "wb") as f:
    w = csv.writer(f)
    w.writerows(c.most_common())