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.
Also die Tupel innerhalb der liste enthalten nur Strings.
- __blackjack__
- User
- Beiträge: 13110
- 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?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
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: 13110
- 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)
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
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: 13110
- 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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
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