einzelne wörter array zählen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
jhellmeier
User
Beiträge: 1
Registriert: Mittwoch 27. April 2011, 14:04

Hallo,
ich habe gerade folgendes Problem, ich habe ein array mit mehreren Verschiedenen Werten:

werte = ['buch','auto','telefon','auto','buch']

mein python skript soll folgendes ausgeben:
buch: 2
auto: 2
telefon: 1

ich habe absolut keine ideee wie ich das lösen soll
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

Vorausgesetzt du benutzt Python >= 2.7, willst du dich über collections.Counter informieren.
In specifications, Murphy's Law supersedes Ohm's.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hallo jhellmeier, willkommen im Forum,

das was du hast ist kein Array sondern eine Liste. Das sind unterschiedliche Sachen. Listen-Objekte haben eine Methode namens ``count`` die genau das macht, was vom Namen her zu erwarten ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

@Leonidas: alist.count(value) liefert aber nur die Anzahl der Vorkommnisse von value in alist, nicht aber die Anzahl aller Vorkommnisse aller Einträge.

@jhellmeier: Ich möchte mich Leonidas anschließen in Bezug auf Listen vs. Arrays. Sie sind nicht dasselbe.

Gruß,
Mick.
In specifications, Murphy's Law supersedes Ohm's.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Alternativ kann man auch `defaultdict` aus dem collections Modul nutzen. Dieses auf `int` setzen und in einer Schleife die Werte als Keys interpretieren und entsprechend den Zählwert hochsetzen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

pillmuncher hat geschrieben:@Leonidas: alist.count(value) liefert aber nur die Anzahl der Vorkommnisse von value in alist, nicht aber die Anzahl aller Vorkommnisse aller Einträge.
Ganz recht, aber der OP soll ja was zum selbstlernen haben. Zum Beispiel das Konzept der Iteration ;) Aber natürlich, anderswie ist es schon eleganter.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten