У меня есть код python ниже, который будет проходить через таблицу и распечатывать значения в определенном столбце. То, что не показано, - это форма, в которой пользователь выбирает слой функций. После выбора Feature Layer вторая Dropdown заполняется всеми заголовками столбцов для этой функции, и пользователь выбирает, в какой колонке они хотят сосредоточиться. Теперь в скрипте python я просто распечатываю каждое значение внутри этого столбца. Но я хочу сохранить каждое значение в списке или массиве и получить отличительные значения. Как я могу это сделать в Python?Добавление значений в массив и получение различных значений с использованием Python
Также есть более эффективный способ прокрутки таблицы, чем идти по строкам? По некоторым причинам это очень медленно.
большое спасибо
# 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)
Айе. Используйте 'set', и все будет готово. +1. –
Привет, я изменил свой код, чтобы отразить ваши настройки, и я получаю сообщение об ошибке. Вы видите какие-либо проблемы с ним выше? Кроме того, я оставил набор() до тех пор, пока не получу цикл – Josh
. Что мне было интересно (а), почему вы перебираете строку «row», (b) какие «поля» (так как вы не определяли ее в показанный код, но я догадался, что он пришел откуда-то еще), и (c) у вас могут возникнуть проблемы сейчас, когда вы дважды вызываете 'searchcursor'; возможно, что это конфликтует, поэтому лучше удалить первый звонок. – poke