2013-04-23 10 views
5

diese Frage auf meiner pervious Frage beruht: Python list help (incrementing count, appending)Python Zählergebnisse zu csv-Datei

Ich bin in der Lage die folgende Ausgabe zu erstellen, wenn ich Druck c tun;

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

Welches ist genau wie ich will und jetzt würde ich gerne wissen, wie ich dies in eine CSV-Datei schreiben kann. Jede Zeile repräsentiert einen neuen Ort, lon/lat, count.

Ich möchte den Zähler durchlaufen und auf diese Teile zugreifen: writer.writerow (["A", "B", "C"]);

A ist die Lage wie Neuseeland, B die lat ist/lon, C die Anzahl der Erscheinung ist,

Wie kann ich gräflichen Ergebnisse zugreifen und diese gewünschten Teile bekommen? Vielen Dank.

Antwort

8

Eine Counter ist eine Unterklasse der Standard dict Klasse; Sie können im Wörterbuch mit .iteritems() (Python 2) oder nur .items() (Python 3) über die Elemente Schleife:

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

Dies schreibt vier Spalten, mit 2 separaten Spalten für die Breite und Länge. Wenn Sie diese in einer Spalte kombinieren möchten, z. B. als Zeichenfolge mit einem Schrägstrich zwischen den beiden Koordinaten, verwenden Sie einfach die Zeichenfolgenformatierung:

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

Dies funktioniert. Vielen Dank. – chatu

+0

Wie kann ich diese aufsteigend nach der Anzahl sortieren? @Martijn – chatu

+0

Ich habe versucht, sortiert (your_counter.iteritems()), aber das sortiert nach Ort, wo ich es für die Zählung brauche. Vielen Dank. – chatu