nach bestimmten Zeichen suchen und 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
Alex_1979
User
Beiträge: 3
Registriert: Dienstag 17. Juli 2018, 07:09

Gibt es eine Funktion mit der ich ein bestimmtes zeichnen in einem Textfeld zählen kann. Grund bzw. Beispiel. Ich habe eine Text Datei wo jeder begriff mittels '|' abgetrennt ist. ich benötige zum bearbeiten zb. den 5 ,10 und 16 Begriff, weis aber nicht wie lang diese Begriffe sind. Aus diesem Grund würde ich gerne bis zum 5 '|' zählen wollen und dann alles bis zum nächsten | ausgeben und dann wieder weiter bis zum zehnten '|' .. usw.

Gibt es da eine einfache Möglichkeit oder muss man dies alles selber schreiben.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Alex_1979: Du hast ja schon ein Thema deswegen eröffnet und da hat snafu eine Funktion zum einlesen der Daten und zerlegen der Zeile in eine Liste gezeigt.

Ansonsten schau Dir einfach mal die Methoden an die es auf Zeichenketten so gibt. Und arbeite ein Tutorial durch. In der Python-Dokumentation ist beispielsweise eines enthalten.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Benutzeravatar
pixewakb
User
Beiträge: 1408
Registriert: Sonntag 24. April 2011, 19:43

Du suchst keine Funktion, die Elemente zählt!

Code: Alles auswählen

>>> zeile = "|".join([str(i) for i in range(0,20)])
>>> zeile
'0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19'
>>> elemente = zeile.split("|")
>>> elemente
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19']
>>> print(elemente[5], elemente[10], elemente[16])
5 10 16
Dein Problem lässt sich mit Board-Mitteln lösen - arbeite dringend ein Tutorial oder die ersten Kapitel einer Einführung durch, du wirst sonst mit der Sprache selten Freude haben... :roll:
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Alex_1979 hat geschrieben: Mittwoch 18. Juli 2018, 09:34 ich benötige zum bearbeiten zb. den 5 ,10 und 16 Begriff, weis aber nicht wie lang diese Begriffe sind. Aus diesem Grund würde ich gerne bis zum 5 '|' zählen wollen und dann alles bis zum nächsten | ausgeben und dann wieder weiter bis zum zehnten '|' .. usw.

Gibt es da eine einfache Möglichkeit oder muss man dies alles selber schreiben.
Du könntest natürlich mit der .index()-Methode arbeiten und nach einem Treffer den Index für die nächste Suche nach vorne setzen. Das ist aber super-primitiv und fehleranfällig. So arbeitet man in Python nicht und wahrscheinlich auch in keiner anderen Programmiersprache. Man bringt die Daten zunächst in eine geeignete Struktur und arbeitet dann auf dieser Struktur weiter. Denn spätestens, wenn du zum Filtern kommst, fliegt dir dein Ansatz um die Ohren. Ich habe im anderen Thread nun eine ausführlichere und vereinfachte Lösung für das Parsein reingestellt. Setz dich doch zumindest mal mit diesem Ansatz auseinander. Wir programmieren alle nicht erst seit gestern und unsere Empfehlungen haben Gründe...
Antworten