Wie kann man 2 oder auch mehrere Listen vergleichen und die gemeinsamen Werte oder Strings ausgeben?
z.B.
wochentag = ["montag", "dienstag", mittwoch", "donnerstag", "freitag"]
lieblingstag = ["dienstag", "freitag", "samstag", "sonntag"]
...
Wie würde es weitergehen, dass das Programm (in dem Fall Dienstag und Freitag) die gleichen Werte ausgibt?
Vielen Dank schonmal!
Listen vergleichen und gemeinsame Werte ausgeben
-
- User
- Beiträge: 16
- Registriert: Samstag 3. März 2018, 13:27
Hi ^.^
also ich würds so machen:
also ich würds so machen:
Code: Alles auswählen
wochentag = ["montag", "dienstag", "mittwoch", "donnerstag", "freitag"]
lieblingstag = ["dienstag", "freitag", "samstag", "sonntag"]
gemeinsame_tage = []
for i in lieblingstag:
if i in wochentag:
gemeinsame_tage.append(i)
-
- User
- Beiträge: 16
- Registriert: Samstag 3. März 2018, 13:27
@Sirius3 Stimmt, "tag" ist besser. Aber laut einem seltsamen Uniprofessor soll man eh englische Namen für Variablen benutzen, von daher dachte ich 'zu Vorführungszwecken reichts'
Und ich würds so machen:
Code: Alles auswählen
wochentag = ["montag", "dienstag", "mittwoch", "donnerstag", "freitag"]
lieblingstag = ["dienstag", "freitag", "samstag", "sonntag"]
print(*set(wochentag).intersection(lieblingstag), sep=', ')
-
- User
- Beiträge: 2
- Registriert: Donnerstag 5. April 2018, 17:28
also danke erstmal für die ganze hilfe von euch. Und nein, es war keine hausaufgabe. Schreibe ein größeres Programm und habe meine Frage sehr vereinfacht dargestellt. Trotzdem nochmals danke
- DeaD_EyE
- User
- Beiträge: 1017
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Die Lösung von Joshuah992 ist eine, die der Lehrer erwarten könnte.
Hier wird halt gezeigt wie man es "zu Fuß" machen kann. Ist aber nicht pythonic.
Genau für diesen Zweck gibt es die Funktion zip().
Zip könnte man am besten als Reißverschluss bezeichnen.
Es fügt zwei oder mehrere Listen zusammen. Man kann auch ein Transpose (Zeilen mit Spalten tauschen) machen, wie man es Excel kennt.
Was mit unterschiedlich langen Listen passiert, siehst du, wenn du das Beispiel ausprobierst.
Wenn du etwas haben möchtest, dass mit unterschiedlich langen Listen arbeitet, musst du nach itertools.zip_longest gucken.
Hier wird halt gezeigt wie man es "zu Fuß" machen kann. Ist aber nicht pythonic.
Genau für diesen Zweck gibt es die Funktion zip().
Zip könnte man am besten als Reißverschluss bezeichnen.
Es fügt zwei oder mehrere Listen zusammen. Man kann auch ein Transpose (Zeilen mit Spalten tauschen) machen, wie man es Excel kennt.
Code: Alles auswählen
liste1 = [1,2,3]
liste2 = [4, 5]
for l1, l2 in zip(liste1, liste2):
print(l1, l2)
Wenn du etwas haben möchtest, dass mit unterschiedlich langen Listen arbeitet, musst du nach itertools.zip_longest gucken.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
- DeaD_EyE
- User
- Beiträge: 1017
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Ach mist, stimmt.
Habe nur die beiden Listen kurz gesehen und zu schnell geantwortet.
Ne, dann geht es mit zip natürlich nicht.
Habe nur die beiden Listen kurz gesehen und zu schnell geantwortet.
Ne, dann geht es mit zip natürlich nicht.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server