Seite 1 von 1
Verfasst: Freitag 6. März 2009, 17:58
von Nocta
Mal ne Frage, wenn ich dieses Defaultdict jetzt sortiert nach Häufigkeit ausgeben will, gibt es dann noch was einfacheres als dies hier?
Code: Alles auswählen
for i in sorted([(x, y) for x, y in counted.iteritems()], lambda x, y: y[1] - x[1]):
print i[0], i[1]
Ich finde die Lösung zwar nicht schlecht und auch gut verständlich, aber vielleicht kann mir ja wieder jemand etwas neues aufzeigen, wie das so oft hier im Forum passiert.
Verfasst: Freitag 6. März 2009, 20:17
von lunar
Code: Alles auswählen
for key, item in sorted(counted.iteritems(), key=itemgetter(1)):
print(key, item, sep=': ')
"itemgetter()" kommt aus dem "operator"-Modul.
Verfasst: Montag 9. März 2009, 15:20
von christine
Hallo,
ich sortiere meine Ausgabe auch:
Code: Alles auswählen
counted = defaultdict(int)
for ergebnisWort in ergebnisListeDerAbfrage:
counted[ergebnisWort] += 1
sortierung = sorted((value, key) for (key, value) in counted.iteritems())
sortierung.reverse()
for key, value in sortierung:
print "Treffer: %d %s" % (key, value)
Erhalte dann folgende Ausgabe:
Code: Alles auswählen
Treffer: 4 Bekleidungsgeschäfts
Treffer: 2 Weisungsrecht
Treffer: 2 Geschäftslokal
Treffer: 2 Geschäfte
Treffer: 1 Gewerbemiete
Treffer: 1 Geschäftsraummietvertrag
