Obteniendo un valor único del segundo campo usando arcpy.da.SearchCursor?

8

Tengo una clase de entidad y usando arcpy.da.SearchCursor obtengo valores únicos de un campo (por ejemplo, Nombre). ¿Cómo puedo usar este método para obtener el valor de fila asociado de un campo diferente (campo diff = Nombre2)?

Hasta ahora, uso esto para obtener valores únicos solo en el campo Nombre:

values = [row[0] for row in arcpy.da.SearchCursor(fc, ("Name"))]
    uniqueValues = set(values)
    for value in uniqueValues:  

Al buscar en la clase de entidad, ¿cómo obtengo también el valor de otro campo, el campo Nombre2?

artwork21
fuente
1
¿Puedes proporcionar un poco más de contexto? ¿Qué buscas hacer exactamente?
blah238

Respuestas:

8

Comprensión del diccionario:

{row[0]: row[1] for row in arcpy.da.SearchCursor(fc, ("Name", "Name2"))}

Tenga en cuenta que esto solo tendrá UN valor por valor de columna de Nombre único. También puede usar colecciones para obtener una lista de valores de Name2:

import collections
names = collections.defaultdict(list)

for name1, name2 in arcpy.da.SearchCursor(fc, ("Name", "Name2")):
    names[name1].append(name2)
Jason Scheirer
fuente
2

El archivo de ayuda en SearchCursor (arcpy.da) tiene ejemplos de código en la parte inferior. El primer ejemplo 1 de SearchCursor muestra cómo obtener una lista de campos. Asigne la fila [0] y la fila [1] a nombres de variables para usar en su código.

ccn
fuente
@con, La lista de campos. Método de fila de formato no funcionó, por valor en valores únicos:
artwork21
2
@ artwork21 ¿Puede publicar el código modificado como una edición a su pregunta adicional?
Fezter