Obtendo valor exclusivo do segundo campo usando arcpy.da.SearchCursor?


8

Eu tenho uma classe de recurso e usando arcpy.da.SearchCursor estou recebendo valores exclusivos de um campo (por exemplo, nome). Como posso usar esse método para obter o valor da linha associada de um campo diferente (campo diff = Nome2)?

Até agora, eu uso isso para obter valores exclusivos apenas no campo Nome:

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

Ao pesquisar na classe de recurso, como também obtenho o valor de outro campo, o campo Nome2?


1
Você pode fornecer um pouco mais de contexto? O que você está procurando fazer exatamente?
precisa saber é o seguinte

Respostas:


8

Compreensão do dicionário:

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

Observe que isso só terá UM valor por valor exclusivo da coluna Nome. Você também pode usar coleções para obter uma lista dos valores de Name2:

import collections
names = collections.defaultdict(list)

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

2

O arquivo de ajuda no SearchCursor (arcpy.da) possui exemplos de código na parte inferior. O primeiro exemplo 1 do SearchCursor mostra como pegar uma lista de campos. Atribua a linha [0] e a linha [1] aos nomes das variáveis ​​a serem usadas no seu código.


@con, A lista dos campos .format método de linha não funcionou para, por valor no UniqueValues:
artwork21

2
@ artwork21 Você pode postar o código modificado como uma edição para sua pergunta adicional?
Fezter
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.