Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

21.06.2015, 19:44

Python - Position in einer Liste ermitteln

Guten Abend,
ich bin noch sehr neu in Python und möchte es mir nun aneignen.

Ich habe eine Liste in der ein bestimmter Wert mehrmals vorhanden ist.
Nun möchte ich gerne alle Stellen/ Positionen wo der Wert auftaucht in einer Liste oder mehreren Variablen speichern :)


Kann mir jemand helfen,
wie ich das angehen kann?

Niklas

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

21.06.2015, 22:08

Guck mal hier, da geht es um dein Problem. An sich möchtest du über die Liste iterieren und dann prüfen ob das Element das gewünschte ist. Ist das der Fall speicherst du seinen Index. Wie das in Python aussehen kann steht in dem von mir verlinkten Thread.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

3

22.06.2015, 12:39

es geht auch direkter. So führt das googlen nach "python find all occurences" zu folgender Lösung (Quelle: http://stackoverflow.com/questions/62941…ement-in-a-list ):

Quellcode

1
indices = [i for i, x in enumerate(my_list) if x == "whatever"]
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

22.06.2015, 12:45

Quellcode

1
indices = [i for i, x in enumerate(my_list) if x == "whatever"]

Eine solche List-Comprehension wäre auch die pythonesque Lösung, die ich vorgeschlagen hätte.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

5

22.06.2015, 14:39

Eine vergleichbare Lösung stand in dem von mir verlinkten Thread auch. Ist schon richtig dass der Python Weg sowas nutzen würde. Aber wenn er grad anfängt programmieren zu lernen ist es meiner Meinung nach mal eine gute Übung sowas von Hand zu machen. Das schließt list comprehension ja nicht aus. Eben so wie er kann. Aber jetzt wäre es zumindest sinnvoll sich hinzusetzen und zu versuchen zu verstehen was das Stück Code macht. Das Stichwort hast du dafür ja jetzt.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige