Viele arcpy-Funktionen, die mehrere Eingaben annehmen, akzeptieren Python-Listenobjekte.
Zum Beispiel Dissolve_management
akzeptiert die Funktion eine Liste von Feldnamen, auf die aufgelöst werden soll:
arcpy.Dissolve_management("taxlots", "C:/output/output.gdb/taxlots_dissolved",
["LANDUSE", "TAXCODE"], "", "SINGLE_PART", "DISSOLVE_LINES")
Ein Tupel kann anstelle einer Liste verwendet werden, wenn Sie die Reihenfolge oder Anzahl der Elemente nicht ändern müssen, da Tupel unveränderlich sind . Sie sind eine nützliche Datenstruktur für heterogene, aber verwandte Daten, z. B. die Elemente eines Zeitstempels oder die Koordinaten eines Punkts. Es werden häufig Tupellisten angezeigt, in denen ein Tupel als eindeutiger Datensatz mit einer festen Anzahl von Attributen dient, während die Liste leicht die Größe ändern, neu geordnet (sortiert) werden kann usw. Weitere Informationen zu den Verwendungen finden Sie in dieser StackOverflow-Frage von Listen gegen Tupel.
Ein Wörterbuch kann als schnelle Nachschlagetabelle verwendet werden, um einen relativ kleinen, aber häufig verwendeten Satz von Schlüsselwertpaaren im Speicher zwischenzuspeichern. Ich habe in den ArcGIS-Foren ein interessantes Beispiel dafür gesehen: http://forums.arcgis.com/threads/55099-Update-cursor-with-joined-tables-work-around-w-dictionaries
Die Verwendung eines Wörterbuchs anstelle eines Joins beschleunigte die Berechnung von 3,5 Stunden auf 15 Minuten.
Ein einfacheres Beispiel könnte sein, dass Sie über eine Million Adressdatensätze mit einem Attribut mit dem abgekürzten Statusnamen (CA) verfügen. Für Anzeigezwecke möchten Sie jedoch den richtigen Namen (Kalifornien) formulieren. Sie können dieses Wörterbuch als Nachschlagetabelle verwenden, wenn Füllen eines vollständigen Statusnamensfelds.
Ich habe keine Notwendigkeit gefunden, eine Klasse in Python zu schreiben, um sie in arcpy selbst zu verwenden, aber das heißt nicht, dass es keinen solchen Anwendungsfall gibt. Eine Klasse kann nützlich sein, wenn Sie über eine Reihe eng verwandter Funktionen (Verhaltensweisen) verfügen, die mit bestimmten Eingaben (Daten) arbeiten, und diese Daten und Verhaltensweisen objektorientiert verwenden möchten. Dies ist jedoch mehr Wahrscheinlich geschäftslogikspezifisch und nicht mit Arcpy verwandt.