J'ai un code python ci-dessous qui va parcourir une table et imprimer des valeurs dans une colonne particulière. Ce qui n'est pas affiché est la forme dans laquelle l'utilisateur sélectionne une couche d'entités. Une fois la couche d'entités sélectionnée, une seconde liste déroulante est remplie avec tous les en-têtes de colonne pour cette fonctionnalité et l'utilisateur choisit la colonne sur laquelle il souhaite se concentrer. Maintenant, dans le script python, j'imprime simplement chaque valeur dans cette colonne. Mais je veux stocker chaque valeur dans une liste ou un tableau et obtenir des valeurs distinctes. Comment puis-je faire cela en Python?Ajouter des valeurs à un tableau et obtenir des valeurs distinctes en utilisant Python
Y a-t-il aussi un moyen plus efficace de faire une boucle dans la table plutôt que d'aller ligne par ligne? C'est très lent pour une raison quelconque.
merci beaucoup
# Import system modules
import sys, string, os, arcgisscripting
# Create the Geoprocessor object
gp = arcgisscripting.create(9.3)
gp.AddToolbox("E:/Program Files (x86)/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")
# Declare our user input args
input_dataset = sys.argv[1] #This is the Feature Layer the User wants to Query against
Atts = sys.argv[2] #This is the Column Name The User Selected
#Lets Loop through the rows to get values from a particular column
fc = input_dataset
gp.AddMessage(Atts)
rows = gp.searchcursor(fc)
row = rows.next()
NewList = []
for row in gp.SearchCursor(fc):
##grab field values
fcValue = fields.getvalue(Atts)
NewList.add(fcValue)
Aye. Utilisez 'set' et vous serez tous ensemble. +1 –
Salut poke, j'ai changé mon code pour refléter vos réglages et j'ai une erreur. Voyez-vous des problèmes avec cela ci-dessus? J'ai aussi omis le set() pour le moment jusqu'à ce que la boucle fonctionne – Josh
Ce que je me demandais c'est (a) pourquoi vous itérez sur 'row', (b) ce que' fields' est (comme vous ne l'avez pas défini dans le code montré, mais je l'ai deviné est venu d'ailleurs) et (c) vous pourriez avoir des problèmes maintenant que vous appelez 'searchcursor' deux fois; il est possible que cela soit en conflit, il vaut donc mieux retirer le premier appel. – poke