Seite 1 von 1

in einer Linienliste aus Punkten jede 2te linie umdrehen

Verfasst: Mittwoch 19. Mai 2010, 17:50
von sea-live
Guten Tag

mal wieder eine verzwickte sache
3000punkte werden eingelesen XYZ koordinaten

Code: Alles auswählen

roh=[]
in_file = open("temp.nc","r")
for line in in_file:
    defitet = line.split()
    roh.append(defitet)
#roh = in_file.read()
in_file.close()
print roh[0]
print len(roh)
DARAUs
mach ich dann linien in Yrichtung

Code: Alles auswählen

linearray=[]
y_akt=roh[0][1]
line=[]
for point in roh:
    if point[1] == y_akt:
        line.append(point)
    else:
        linearray.append(line)
        line = []
        line.append(point)
        y_akt = point[1]
print len(linearray)
nun soll aus dem linienarray jede 2te linie gedreht werden!

wie mach ich das am schlauesten ?

es soll ein zigzag aus punkten entstehen und dann natürlich punkte zu linien zusammenfassen die in einer ebene sind!

DANKE

Re: in einer Linienliste aus Punkten jede 2te linie umdrehen

Verfasst: Mittwoch 19. Mai 2010, 18:03
von sea-live
ich hab es jetzt manuell gedreht

Code: Alles auswählen

zigzag=[]
temp=0
for linie in linearray:
    if temp == 0:
        zigzag.append(linie)
        temp=1
    if temp == 1:
        tmplist=[]
        x=len(linie)-1
        for a in xrange(x,0,-1):
            tmplist.append(linie[a])
        zigzag.append(tmplist)
        temp = 0
        

Re: in einer Linienliste aus Punkten jede 2te linie umdrehen

Verfasst: Mittwoch 19. Mai 2010, 19:21
von EyDu
Ich habe folgends (ungetestet) aus der wirren Beschreibung und dem Code geschlossen:

Code: Alles auswählen

zizzag = [linie[slice(None) if index%2 else slice(-1, 0, -1)]
          for (index, linie) in enumerate(linien)]