Frage zu for-schleifen und Listen

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
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

@cofi: In Deinem zweiten Ansatz könnte man beim zweiten Element in der for-Schleife anfangen ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Malinka
User
Beiträge: 18
Registriert: Donnerstag 29. August 2013, 15:53

Vielen vielen Dank für die Hilfestellungen. Ich werde mich da morgen weiter mit auseinandersetzen, da mein Kopf langsam ziemlich dröhnt. :P
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Ja, und man koennte einen Iterator benutzen und das erste Set mit `next` initialisieren .. aber ich wollte es einfach halten ;)
Malinka
User
Beiträge: 18
Registriert: Donnerstag 29. August 2013, 15:53

Okay, habe doch nicht die Finger davonlassen können.
@ cofi Habe jetzt eher deinen konservativeren Vorschlag genommen, da der doch für mich am besten nachvollziehbar ist und es so nach meinem Geschmack angepasst:

Code: Alles auswählen

vergleichsliste = set(wortliste[0])
    for worte in wortliste:
        #Ein Set der Worte aus der ersten "Sub-Liste" wird mit den Sets aus allen "Sub-Listen" verglichen und die Schnittmenge gebildet
        vergleichsliste &= set(worte)
Habe ich die Funktionsweise jetzt richtig verstanden (siehe Kommentar)?

Wahrscheinlich lacht ihr jetzt, aber ich weiß nicht, warum in meinem Code aus &= hier &= gemacht wird...
BlackJack

@Malinka: Das liegt am Forum. Aber nicht nur deswegen solltes Du lieber die Methode verwenden. Da brauchst Du erstens die `worte` nicht in ein `set` umwandeln und zweitens wird nur `set` verwendet das aktualisiert wird, statt in jedem Schleifendurchlauf ein neues `set` mit einem Zwischenergebnis zu erstellen. Und lesbarer ist es auch, weil man bei einem Methodennamen leichter in der Dokumentation suchen kann als bei einem Operator.
Antworten