Anfänger Frage for schleife

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
USER67
User
Beiträge: 14
Registriert: Mittwoch 22. September 2010, 10:58

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
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

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/
USER67
User
Beiträge: 14
Registriert: Mittwoch 22. September 2010, 10:58

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?
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
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

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
USER67
User
Beiträge: 14
Registriert: Mittwoch 22. September 2010, 10:58

Hallo,

"any" methode hört sich gut an. sollte man kennen.

grossen dank für den tipp.

Mfg
Udo
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

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.
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Mit anderen Worten, ein Korb könnte z.B. Folgendes enthalten (Pseudoschreibweise):

Code: Alles auswählen

"Udu":"Apfel",2
"Michael":"Banane",1;"Orange",2
Oder gleich die Obstsorten durch IDs ersetzen.
Antworten