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!
String in einer Liste splitten
- __blackjack__
- User
- Beiträge: 14053
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Und warum hat meine eine Liste wo genau ein Element drin ist? Da macht die Liste nicht wirklich Sinn.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
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!
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
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.
Code: Alles auswählen
data = "hallo"
pattern = "hal__"
for real, expected in zip(data, pattern):
print(real, expected)