Многие функции arcpy, которые принимают несколько входных данных, принимают объекты списка Python.
Например, Dissolve_management
функция принимает список имен полей, на которых нужно раствориться:
arcpy.Dissolve_management("taxlots", "C:/output/output.gdb/taxlots_dissolved",
["LANDUSE", "TAXCODE"], "", "SINGLE_PART", "DISSOLVE_LINES")
Кортеж можно использовать вместо списка, когда вам не нужно изменять порядок или количество элементов, поскольку кортежи являются неизменяемыми . Они представляют собой полезную структуру данных для разнородных, но связанных частей данных, таких как элементы метки времени или координаты точки. Вы часто будете видеть списки кортежей, где кортеж служит отдельной записью с фиксированным количеством атрибутов, в то время как список может легко изменить размер, быть переупорядочен (отсортирован) и т. Д. См. Этот вопрос StackOverflow для получения дополнительной информации об использовании. списков против кортежей.
Словарь может использоваться в качестве таблицы быстрого поиска для кэширования в памяти относительно небольшого, но часто используемого набора пар ключ-значение. Я видел интересный пример этого на форумах ArcGIS: http://forums.arcgis.com/threads/55099-Update-cursor-with-joined-tables-work-around-w-dictionaries
Использование словаря вместо соединения ускорило их вычисление с 3,5 часов до 15 минут.
Более простым примером может быть, если у вас есть миллион записей адресов с атрибутом с сокращенным именем штата (CA), но для целей отображения вы хотите указать правильное имя (Калифорния), вы можете использовать этот словарь в качестве справочной таблицы, когда заполнение поля полного имени штата.
Я не нашел необходимости писать класс на Python для использования в arcpy, но это не значит, что такого случая нет. Класс может быть полезен, когда у вас есть набор тесно связанных функций (поведений), которые работают с некоторыми входными данными (данными), и вы хотите иметь возможность использовать эти данные и поведения объектно-ориентированным способом, но это больше скорее всего, будет специфичным для бизнес-логики и не связанным с arcpy.