2016-11-09 2 views
0

Wie kann ich mithilfe von itertools in Python 2.7 angeben, welche Teile des Codes (in Link hervorgehoben) wiederholt werden sollten? Ist der Zähl-Iterator oder Kombinations-Iterator für diesen Fall auch besser? Ich listet die Nummern von IDs (numIDs) und referenzierenden Feldern in ArcGIS auf (mit arcpy), um einen neuen ID-Typ zu erstellen. Das Ziel ist es, den Code zu verkürzen und nun jede numIDs und Zeile [x] = "...- (01)" aufzulisten. Dies ist der Code, für die ich versucht bin zu schreiben und Iterator:Python itertools Anzahl oder Kombination für ID-Felder

if numIDs == "1": 
     row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)" 
     cursor.updateRow(row) 
    elif numIDs == "2": 
     row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)" 
     row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)" 
     cursor.updateRow(row) 
    elif numIDs == "3": 
     row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)" 
     row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)" 
     row[5] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (03)" 
     cursor.updateRow(row) 
    elif numIDs == "4": 
     row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)" 
     row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)" 
     row[5] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (03)" 
     row[6] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (04)" 
     cursor.updateRow(row) 
    elif numIDs == "5": 
     row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)" 
     row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)" 
     row[5] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (03)" 
     row[6] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (04)" 
     row[7] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (05)" 
     cursor.updateRow(row) 
    elif numIDs == "6": 
     row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)" 
     row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)" 
     row[5] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (03)" 
     row[6] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (04)" 
     row[7] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (05)" 
     row[8] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (06)" 
     cursor.updateRow(row) 
    elif numIDs == "7": 
     row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)" 
     row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)" 
     row[5] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (03)" 
     row[6] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (04)" 
     row[7] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (05)" 
     row[8] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (06)" 
     row[9] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (07)" 
     cursor.updateRow(row) 
    elif numIDs == "8": 
     row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)" 
     row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)" 
     row[5] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (03)" 
     row[6] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (04)" 
     row[7] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (05)" 
     row[8] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (06)" 
     row[9] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (07)" 
     row[10] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (08)" 
     cursor.updateRow(row) 
    elif numIDs == "9": 
     row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)" 
     row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)" 
     row[5] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (03)" 
     row[6] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (04)" 
     row[7] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (05)" 
     row[8] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (06)" 
     row[9] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (07)" 
     row[10] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (08)" 
     row[11] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (09)" 
     cursor.updateRow(row) 
    elif numIDs == "10": 
     row[3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (01)" 
     row[4] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (02)" 
     row[5] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (03)" 
     row[6] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (04)" 
     row[7] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (05)" 
     row[8] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (06)" 
     row[9] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (07)" 
     row[10] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (08)" 
     row[11] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (09)" 
     row[12] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (10)" 
     cursor.updateRow(row) 
+0

Ist 'row' eine' list' oder 'dict' Objekt? –

+0

Für Ihre nächste Frage zu SO lesen Sie bitte [mcve]. – boardrider

Antwort

0

Ich bin nicht sicher, was Sie versuchen zu tun, aber dieser Code macht mich unter einem Busch verstecken wollen.

Dies tut genau das gleiche wie Ihr Code:

for i in range(numIDs): 
    row[i+3] = "(" + row[0] + ") - (" + row[1] + ") - (" + row[2] + ") - (%02i)" %(i+1) 
    cursor.updateRow(row) 
0

Dieser Code entspricht:

for i in range(1, numIDs+1): 
    row[i+2] = "({}) - ({}) - ({}) - (%02i)".format(row[0], row[1], row[2], i) 
    cursor.updateRow(row) 
Verwandte Themen