Python String Komposition mit Liste 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
kdlll1
User
Beiträge: 2
Registriert: Mittwoch 12. Januar 2022, 17:04

Hi,

ich habe folgendes Problem, als Beispiel mal: ich möchte eine Funktion schreiben, mit der ich die Zusammensetzung eines Strings zählen kann. was ich damit meine ist, dass ich eine Liste: buchstaben = [a,b,c,d,e..] habe, die alle Buchstaben des Alphabets enthält. Wenn ich nun einen beliebigen Satz als String habe, möchte ich als Output eine Übersicht haben, die quasi aufzählt wie oft jeder Buchstabe vorkam.
Ist das Ergebnis als Liste zusammenzufassen? Da bin ich mir leider ebenfalls nicht sicher, vielleicht weiß ja jemand weiter.

Vielen Dank und schönen Abend noch!!
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das klingt nach einem Histogram, und das wuerde ich in Python mit collections.Counter bauen.
kdlll1
User
Beiträge: 2
Registriert: Mittwoch 12. Januar 2022, 17:04

Hi,
Danke schonmal, ich lese mich da mal rein. Vielleicht klappts ja damit.
imonbln
User
Beiträge: 191
Registriert: Freitag 3. Dezember 2021, 17:07

Je nachdem, ob du unterscheiden willst, ob klein und Großbuchstaben unterschiedlich gezählt werden und ob du damit leben kannst des Buchstaben welche nicht gesetzt sind leer bleiben kommen unterschiedliche Lösungen um collections.Counter infrage ein einfache könnte so aussehen (ungetestet):

Code: Alles auswählen

import collections
import string
import typing

def count_ascii(inp: str) -> typing.Dict[str, int]:
      cnt = collections.Counter(inp)
      return { char: cnt[char] for char in string.ascii_letters }  
Wobei ich hierbei, der Counter in ein normales dict konvertiert wird.
Antworten