1. Hinter der Funktionsdefinition fehlt ein `:`
2. Du solltest die Definition nicht in die Schleife packen, weil sie sonst bei jedem Durchgang neu ausgewertet wird.
3. Die `sorted_table` Abkuerzung solltest du wieder berichtigen.
Und dein Problem ist dann noch Folgendes: Du baust Listeneintraege die aus einem 6-stelligen Tupel oder einem Leerzeichen-String bestehen (wozu denn?!).
Wenn du die Sortierfunktion mal aufrufen wuerdest, wuerde sie beim Leerzeichen-Eintrag auf die Nase fallen, da gibt es naemlich keinen Index 2
Code: Alles auswählen
import arcgisscripting
import operator
import functools
gp = arcgisscripting.create(9.3)
gp.workspace = "C:/Temp"
cur = gp.SearchCursor("Polyline0Punkte.shp", "", "", "FID, FID_DREIEC, ORIG_FID, POINT_X,POINT_Y,POINT_Z,Tri_Index")
liste = list()
for row in iter(cur.next, none):
current_Eintrag = (row.FID, row.FID_DREIEC, row.ORIG_FID, row.POINT_X, row.POINT_Y, row.POINT_Z)
liste.append(current_Eintrag)
def sort_with_index(iterable, index):
return sorted(iterable, key=operator.itemgetter(index))
sort_table = functools.partial(sort_table, index=2)
print sort_table(liste)