Schrift
[thread]11898[/thread]

über Liste iterieren und elemente löschen



<< >> 5 Einträge, 1 Seite
tsy
 2008-05-23 15:35
#110167 #110167
User since
2008-03-17
54 Artikel
BenutzerIn
[default_avatar]
Hallo, Forum!
Ich habe eine Liste über die ich iterieren und nach bestimmten Bedingungen ein Element entfernen möchte.
Nun hab ich das zunächst mit einer foreach-Schleife probiert, aber das Problem ist ja nun, dass nicht mehr über die gesamte Liste iteriert wird, nachdem ein Element daraus entfernt wurde.
Meine Frage wäre nun, ob es eine elegante Möglichkeit gibt das zu lösen oder muss ich im C-Manier per for-Schleife und urprünglicher Listengröße die Liste n-mal durchgehen?

Viele Grüße, tsy
Gast Gast
 2008-05-23 15:44
#110168 #110168
Es geht sehr viel eleganter mit grep:
Code: (dl )
1
2
my @list = qw/foo bar buz qiz 1 2 3 one two three/;
my @filtered = grep /^\w+$/, @list;
Gast Gast
 2008-05-23 16:08
#110177 #110177
Und grep lässt sich auch mit einem Block anwenden nicht nur mit einem Regex.
http://www.hidemail.de/blog/grep-perl.shtml
Gast Gast
 2008-05-23 16:11
#110178 #110178
Grep ist bis zu 3mal schneller als eine normale Iteration in einer Schleife. Aber das musst du testen, falls es auf Geschwindigkeit ankommt.
tsy
 2008-05-23 17:59
#110188 #110188
User since
2008-03-17
54 Artikel
BenutzerIn
[default_avatar]
Hi, in der Liste befinden sich Objekte, deren Attribute verarbeitet werden. Ich guck mir mal die verlinkte Seite an und teste, ob grep was für mich ist. Danke schonmal soweit :)
<< >> 5 Einträge, 1 Seite



View all threads created 2008-05-23 15:35.