Suite

Utilisation de crochets dans le curseur de mise à jour ArcPy ?


Je recherche des conseils pour reclasser l'utilisation ou la signification des crochets dans le curseur de mise à jour arcpy (Win 7, ArcGIS 10.2, Python 2.7.5) .org/2/library/index.html, je n'ai pas pu trouver de réponse descriptive.

Donc, dans l'exemple ci-dessous (de l'aide post avec la syntaxe du curseur de mise à jour Python), j'essaie de comprendre ce que signifient réellement les nombres dans le []?

Est-ce le numéro de colonne ?

Si oui, le décompte commence-t-il à partir de 0 et de la gauche ?

if(row[4] == crow.STTYPE and row[15]=="B": crow.FIELD1 = "HI" crows.updateRow(crow) else: crow.FIELD1 = "BYE" crows.updateRow(crow)

Les crochets ne sont pas utilisés pour l'ancienne version des curseurs. Notez que dans le lien que vous avez fourni, les crochets indexent une liste python (alpha), pas un curseur. Pour la nouvelle version d'accès aux données des curseurs (da.RechercheCurseur, etc.), les crochets sont utilisés pour référencer l'index du champ. Par exemple, supposons que vous ayez une classe d'entités et que vous souhaitiez parcourir ses lignes et rechercher les informations stockées dans trois champs, telles que :

inFc = r"c:	est	est.gdb	est" #feature class fld1 = "field1" #champ 1 nom fld2 = "field2" fld3 = "field3"

Le curseur serait généré dans le curseur d'accès aux données comme tel :

curseur = arcpy.da.SearchCursor (inFc, [fld1, fld2, fld3])

Vous pouvez ensuite parcourir vos lignes et imprimer les valeurs de la ligne dans les trois champs en tant que telles :

pour la ligne dans le curseur : print row[0] #imprime la valeur du premier champ print row[1] #imprime la valeur du deuxième champ print row[2] #imprime la valeur du troisième champ

La même chose est accomplie dans l'ancienne version du curseur avec :

curseur = arcpy.SearchCursor (fc) pour la ligne dans le curseur : print row.getValue (fld1) #imprimer la valeur du premier champ…

Le concept global est que les crochets en python référencent des index dans un objet qui peut être itéré. L'indexation commence à 0 pour le premier élément.

>>> ["a","b","c","d"] [2] 'c' >>> "abcd"[3] 'd'

J'espère que ça aide.