2013-04-23 34 views
5

这个问题是基于我的透水问题:Python list help (incrementing count, appending)Python的计数器结果csv文件

我能当我做打印C创建以下输出;

Counter({(u'New Zealand', 174.885971, -40.900557): 1, (u'Ohio, USA', -82.90712300000001, 40.4172871): 1}) 

这正是我想要的,现在我想知道如何将它写入csv文件。每一行代表一个新的位置,lon/lat,count。

我想通过计数器循环访问这些部分: writer.writerow([“A”,“B”,“C”]);

A像新西兰的位置, B是经/纬度, C是外观的计数,

如何访问计数的结果,并获得所需的那些部分?谢谢。

回答

8

A Counter是标准dict类的子类;你可以循环遍历字典中的项目进行.iteritems()(蟒蛇2)或刚.items()(蟒蛇3):

for key, count in your_counter.iteritems(): 
    location, lat, long = key 
    writer.writerow([location, lat, long, count]) 

这写列,与纬度和经度2个独立的列。如果要将这些列合并为一列,比如说,作为两个坐标之间的斜线的字符串,则只需使用字符串格式:

for key, count in your_counter.iteritems(): 
    location, lat, long = key 
    writer.writerow([location, '{}/{}'.format(lat, long), count]) 
+0

这是有效的。谢谢。 – chatu 2013-04-23 15:57:43

+0

如何根据计数对这些升序进行排序? @Martijn – chatu 2013-04-23 19:06:54

+0

我试过排序(your_counter.iteritems()),但按照我需要它的位置排序count。谢谢。 – chatu 2013-04-23 19:19:44