Angenommen ich habe eine liste dessen Elemente nur aus Tupeln bestehen also vom aussehen her so :
liste_aus_tupel = [(A,b,c),(d,e,f,),.....,(x,y,z)]
Alles strings innerhalb der liste
Wie ist es mir möglich nur jedes 2. Element ausgeben zu lassen ?
Ich bin mir sicher irgendwas mit Index muss benutzt werden.
Allerdings kriege ich es nur hin das 2. Element aus dem 1. Tupel zu "filtern", danach tut sich nichts mehr.
Tupel innerhalb einer Liste,Iterieren
@d_rose: was meinst Du mit "Alles Strings innerhalb der liste"? Alles Strings innerhalb der Tuple?
Wenn Du schon weißt, wie man das 2. Element aus dem ersten Tuple bekommt, mußt Du nur noch eine Schleife über alle Tuple schreiben.
Wenn Du schon weißt, wie man das 2. Element aus dem ersten Tuple bekommt, mußt Du nur noch eine Schleife über alle Tuple schreiben.
So wie ich dich verstanden habe, suchst du meine_liste[::2].d_rose hat geschrieben: Dienstag 13. November 2018, 10:22 Wie ist es mir möglich nur jedes 2. Element ausgeben zu lassen ?
Oder willst du vom jeweiligen Tupel das zweite Element haben?
Also die Tupel innerhalb der liste enthalten nur Strings.Sirius3 hat geschrieben: Dienstag 13. November 2018, 11:05 @d_rose: was meinst Du mit "Alles Strings innerhalb der liste"? Alles Strings innerhalb der Tuple?
Wenn Du schon weißt, wie man das 2. Element aus dem ersten Tuple bekommt, mußt Du nur noch eine Schleife über alle Tuple schreiben.
- __blackjack__
- User
- Beiträge: 14033
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@d_rose: Wo ist jetzt das konkrete Problem? Du musst halt eine Schleife über die Elemente der Liste schreiben, und von jedem Element, also Tupel, innerhalb der Schleife das 2. Element ausgeben. Wie sieht denn Dein Code dafür aus, bisher?
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Code: Alles auswählen
for line in liste :
if line [1] == 2.parameter der Funktion :
return True
else :
return False
die einrücken ist falsch ich komm mit diesen Quote code nicht klar haha
Das wird nun immer wirscher. Ein return innerhalb einer Schleife steigt halt direkt aus, wenn es ausgeführt wird. Der Teil mit dem else muss wahrscheinlich hinter die Schleife gesetzt werden. Andernfalls hat der Programmfluss ja gar keine Chance, mehr als nur einen Iterationsschritt zu durchlaufen. Und dann kann man das else übrigens auch weglassen.
Aber nochmal als Rückfrage: Willst du die Schleife beenden, sobald irgendein Element aus der Liste den String enthält oder willst du für jedes einzelne Listenelement mittels True oder False kennzeichnen, ob das Element den String enthält?
Aber nochmal als Rückfrage: Willst du die Schleife beenden, sobald irgendein Element aus der Liste den String enthält oder willst du für jedes einzelne Listenelement mittels True oder False kennzeichnen, ob das Element den String enthält?
- __blackjack__
- User
- Beiträge: 14033
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Code: Alles auswählen
def check_for_needle(haystack, needle):
return any(item[1] == needle for item in haystack)
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Die Schleife ist in dieser Form ein sogenannter Generator und der kann als Argument an any() gegeben werden. any() macht daraus dann einen Wahrheitswert, je nachdem ob die Schleifenbedingung zutrifft. Rein technisch gesprochen liefert any() True, wenn mindestens ein Vergleich True ergibt, andernfalls False.
Zuletzt geändert von snafu am Dienstag 13. November 2018, 16:16, insgesamt 1-mal geändert.
- __blackjack__
- User
- Beiträge: 14033
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@d_rose: Nein, hinter ``return`` muss ein Ausdruck stehen der zu einem Wert ausgewertet wird. Dem Wert der dann vom ``return`` an den Aufrufer zurückgegeben wird. Hier ist das ein Aufruf der `any()`-Funktion mit einem Generatorausdruck als Argument. Beides ist in der Python-Dokumentation dokumentiert.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Ok vielen Dank , ich will hier echt niemanden auf den Sack gehe ich bin erst 4 Wochen dabei, deswegen fällt es mir nicht so leicht meine Fragen so präzise wie möglich zu stellen, aber irgendwo muss man ja seinem Start haben