Seite 1 von 1
String in einer Liste splitten
Verfasst: Samstag 7. November 2020, 11:08
von decoder
Hallo!
Ich habe folgendes Problem: Ich habe eine Liste x = ["hallo"] und möchte diese Liste so aufteilen, dass es eine Liste bleibt aber die Buchstaben aufgeteilt sind, also so: ["h", "a", "l", "l", "o"]
Ich hoffe mir kann da einer helfen!
Danke!
Re: String in einer Liste splitten
Verfasst: Samstag 7. November 2020, 11:26
von sparrow
Warum?
Du weißt, dass eine Zeichenkette iterierbar ist und sich deshalb weitesgend wie eine Liste verhält?
Re: String in einer Liste splitten
Verfasst: Samstag 7. November 2020, 11:38
von __blackjack__
Und warum hat meine eine Liste wo genau ein Element drin ist? Da macht die Liste nicht wirklich Sinn.
Re: String in einer Liste splitten
Verfasst: Samstag 7. November 2020, 11:41
von decoder
sparrow hat geschrieben: Samstag 7. November 2020, 11:26
Warum?
Du weißt, dass eine Zeichenkette iterierbar ist und sich deshalb weitesgend wie eine Liste verhält?
Ok, evtl ist es besser wenn ich mein "tatsächliches Problem" dir erzähle.
ich möchte eine Funktion schreiben, die die Buchstaben aus einem String, der in einer Liste ist, einzeln herauspickt und dann Worte vergleichen kann:
Wort1 = ["hal__"]
Wort2 = ["hallo"]
Wenn ich diese Liste : ["h" ,"a", "l"," _", "_"] habe, kann ich "_" entfernen und gucken ob Wort1 und Wort2 die gleiche Länge haben und die gleichen Buchstaben, oder ein paar gleiche Buchstaben.
ich bin sicher, dass man das irgendwie eleganter lösen kann, jedoch bin ich Anfänger und möchte diese Aufgabe erstmal so lösen, außer jemand gibt mir wirklich gute Tipps wie ich das anders lösen kann. Ich hoffe es ist alles verständlich!
Und ich brauche immernoch nur für die aufteilung Hilfem, den Rest löse ich ;D.
Danke!
Re: String in einer Liste splitten
Verfasst: Samstag 7. November 2020, 11:43
von Sirius3
Das beantwortet immer noch nicht die Frage, warum du jetzt zwei Listen mit jeweils einem Element hast.
Was ist bei H_ll_? Soll das auch erkannt werden?
Zum Entfernen von _ benutzt man am Besten auch Stringmethoden.
Re: String in einer Liste splitten
Verfasst: Samstag 7. November 2020, 12:26
von __deets__
Strings sind iterierbar. Und zwei oder mehr iterierbare Dinge zur gleichen Zeit laeuft man mit zip ab. Ohne deine unnoetige Liste drumrum kannst du also mit
Code: Alles auswählen
data = "hallo"
pattern = "hal__"
for real, expected in zip(data, pattern):
print(real, expected)
einen punktweisen Vergleich der beiden Worte machen. Sollte einer der beiden laenger als der andere sein, dann stoppt Python wenn es die kuerzeste Sequenz konsumiert hat. Stattdessen kann man auch itertools.zip_longest benutzen, wenn man das moechte.