Seite 1 von 1
Anfänger Frage for schleife
Verfasst: Mittwoch 22. September 2010, 11:02
von USER67
Guten tag
ich hätte da eine peinliche frage als anfänger in sachen pyton.
wie würdet ihr diese struktur vereinfachen
Code: Alles auswählen
for i in korb:
if "Apfel" in i: pass
elif "Birne" in i: pass
elif "Hund" in i: pass
elif "Gans" in i: pass
...
else: print i
ihr könnt vermutlich das problemchen sehen. denn wenn es mehrer elifs werden
Mfg
Udu
Re: Anfänger Frage for schleife
Verfasst: Mittwoch 22. September 2010, 11:12
von .robert
Hi,
also es kommt ein wenig darauf an, wie genau 'korb' und die 'i's darin aussehen, und was du an stelle des 'pass' einsetzten willst.
Du kannst dir ja mal das pseudo-switch-case-konstrukt anschauen:
http://simonwillison.net/2004/may/7/switch/
Re: Anfänger Frage for schleife
Verfasst: Mittwoch 22. September 2010, 12:12
von USER67
Hallo,
ja also ich will nur diese inhalte des korbs abfragen und nur die, die nicht vorkommen darstellen lassen.
Code: Alles auswählen
korb = ["Udu hat einen Apfel", "Michael hat eine Banane", "Günther hat zwei Orangen"]
for i in korb:
if "Apfel" in i: pass
elif "Birne" in i: pass
else: print i
ich denke das könnte man auch mit einer for-schleife oder?
Re: Anfänger Frage for schleife
Verfasst: Mittwoch 22. September 2010, 12:33
von BlackJack
Das ginge zum Beispiel so:
Code: Alles auswählen
korb = ['Udu hat einen Apfel',
'Michael hat eine Banane',
'Günther hat zwei Orangen']
for item in korb:
if not any(x in item for x in ['Apfel', 'Birne']):
print item
Re: Anfänger Frage for schleife
Verfasst: Mittwoch 22. September 2010, 12:36
von mkesper
Hmm, um das mal auf diesem einfachen Niveau zu halten, hier ein Problemfall:
Code: Alles auswählen
# -*- coding: utf-8 -*-
korb = ["Udu hat zwei Äpfel", "Michael hat eine Banane", "Günther hat zwei Orangen"]
for i in korb:
if not "Apfel" in i:
print "Apfel ist nicht enthalten in %s" % i
Re: Anfänger Frage for schleife
Verfasst: Mittwoch 22. September 2010, 13:11
von USER67
Hallo,
"any" methode hört sich gut an. sollte man kennen.
grossen dank für den tipp.
Mfg
Udo
Re: Anfänger Frage for schleife
Verfasst: Mittwoch 22. September 2010, 13:46
von .robert
um noch auf das Problem, auf welches mkesper hingewiesen hat, zu kommen: Ich würde dringend davon abraten, Informationen umgangssprachlich zu speichern!
Beim ein-lesen/-geben der Daten sollten diese entsprechend aufbereitet/geparsed/analysiert werden, nicht wenn du mit ihnen arbeiten willst. Du musst dir überlegen welche Informationen du brauchst, hier in den Beispiel halt den Namen des Besitzers, die Obstsorte und die Anzahl, und diese dann aus der Eingabe extrahieren und in einer passenden Datenstruktur speichern.
Mit dieser umgangssprachlichen Speicherung wirst du nur Ärger bekommen.
Re: Anfänger Frage for schleife
Verfasst: Mittwoch 22. September 2010, 15:09
von mkesper
Mit anderen Worten, ein Korb könnte z.B. Folgendes enthalten (Pseudoschreibweise):
Oder gleich die Obstsorten durch IDs ersetzen.