Die Zelle von ein bestimmtes Listenelement finden ?

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
Disaster
User
Beiträge: 8
Registriert: Freitag 27. Januar 2012, 22:11

Donnerstag 15. März 2012, 20:14

Hallo und bevor ihr es fragt : Ja , ich habe bereits die SuFu benutzt aber leider ohne Erfolg.
Ich würde gerne von ein Bestimmtes Listenelement die Stelle finden, mein Ansatz war so:

Code: Alles auswählen

liste = ["Apfel","Orange","Banane","Apfel","Kirsche"]
for i in range(len(liste)):
    if "Apfel" not in liste:
        print "Apfel befindet sich nicht in der Liste"
    if "Apfel" == liste[i]:
        print "Apfel befindet sich in der",i,". Zelle der Liste"
Aber dennoch habe ich gedanken, dass es vielleicht einfach als das gehen würde.
Falls ihr bessere Ansätze habt was eventuell kürzer ist wäre ich dankbar wenn ihr mir helfen würdet.

MFG
Disaster
Benutzeravatar
Hyperion
Moderator
Beiträge: 7477
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Donnerstag 15. März 2012, 20:16

Du hättest mal bei den Methoden von ``list`` in Der Doku suchen sollen ;-)

Code: Alles auswählen

In [7]: obst = ["Apfel","Orange","Banane","Apfel","Kirsche"]

In [8]: "Apfel" in obst
Out[8]: True

In [9]: obst.index("Apfel")
Out[9]: 0

In [10]: obst.index("Apfel", 0)
Out[10]: 0

In [11]: obst.index("Apfel", 1)
Out[11]: 3
Und dieses Konstrukt:

Code: Alles auswählen

for i in range(len(liste)):
ist der absolute Anti-Pattern in Python ;-)
Wenn Du den Index mal brauchen solltest, dann erzeuge ihn mit ``enumerate``:

Code: Alles auswählen

for index, item in enumerate(iterable):
In diesem Falle ist das ja nicht notwendig :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
snafu
User
Beiträge: 5936
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Donnerstag 15. März 2012, 20:45

Um das nochmal deutlicher zu machen:

Code: Alles auswählen

# Iteration über Elemente
for element in liste:
    [...]

# Mitführen des Index
for index, element in enumerate(liste):
    [...]

# Nur Indexwerte (sehr selten)
for index in range(len(liste)):
    [...]
Das Holen der Elemente über einen laufenden Indexwert bei einer "klassischen" `for`-Schleife sollte man tunlichst vermeiden. Das ist in Python einfach unüblich, weil die Sprache (siehe Beispiel 1) einem halt andere Mittel bietet.
EyDu
User
Beiträge: 4872
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Donnerstag 15. März 2012, 21:00

Disaster hat geschrieben:Hallo und bevor ihr es fragt : Ja , ich habe bereits die SuFu benutzt aber leider ohne Erfolg.
Ich würde den ersten Satz eines Beitrags ja nicht so formulieren, wenn ich etwas von anderen möchte ;-)
Das Leben ist wie ein Tennisball.
Antworten