Muchas herramientas de geoprocesamiento tienen parámetros de entrada que aceptan varios valores. Cuando vea la página de referencia de la herramienta o su uso en la ventana Python, cada vez que vea el parámetro incluido entre corchetes [ ], sabrá que puede aceptar una lista de valores. Por ejemplo, la herramienta Eliminar campo acepta una lista de campos para eliminar, y el uso del parámetro se muestra como [drop_field, ...]. Algunos parámetros, tales como el parámetro input_features de la herramienta Combinación, aceptan una lista de listas. Su uso se muestra como [[in_features, {Rank}], ...].
Cualquier parámetro que acepte una lista de valores (o una lista de listas de valores) es un parámetro multivalor; acepta uno o más valores. Hay tres maneras de especificar un parámetro multivalor:
- Como una lista, donde cada valor es un elemento de la lista
- Como una cadena de caracteres, donde los valores se separan mediante punto y coma
- Como una ValueTable, donde los valores se almacenan en una tabla virtual de filas y columnas
A continuación se muestran ejemplos de cada una:
Como una lista
En una secuencia de comandos, se pueden pasar entradas multivalor como una lista. Una lista se incluye entre corchetes y es un tipo Python flexible.
DeleteFields utilizando una lista de Python para el parámetro drop_field
import arcpy
arcpy.env.workspace = 'C:/base/county.gdb'
arcpy.DeleteField_management('roads', ['STREET_NAM', 'LABEL', 'CLASS'])
Union utilizando una lista de Python para el parámetro in_features
import arcpy
arcpy.env.workspace = 'C:/base/data/gdb'
arcpy.Union_analysis([['counties', 2],['parcels', 1]], 'state_landinfo')
Como una cadena de caracteres
Puede que la secuencia de comandos tenga que utilizar una cadena de caracteres multivalor en algunos casos, porque puede devolverse uno como un valor de salida de una herramienta o pasarse como un parámetro de entrada para la secuencia de comandos.
DeleteFields utilizando una cadena de caracteres multivalor para el parámetro drop_field.
import arcpy
arcpy.env.workspace = 'C:/base/county.gdb'
arcpy.DeleteField_management('roads', 'STREET_NAM;LABEL;CLASS')
Union utilizando una cadena de caracteres multivalor para el parámetro in_features
import arcpy
arcpy.env.workspace = 'C:/base/data/gdb'
arcpy.Union_analysis('counties 2;parcels 1', 'state_landinfo')
Con ValueTable
Una ValueTable permite organizar los valores en una tabla virtual de filas y columnas. Al crear una tabla de valor se especifica el número de columnas. El valor predeterminado es una única columna.
DeleteFields con una ValueTable para el parámetro drop_field
import arcpy
arcpy.env.workspace = 'C:/base/county.gdb'
vt = arcpy.ValueTable()
vt.addRow('STREET_NAM')
vt.addRow('LABEL')
vt.addRow('CLASS')
arcpy.DeleteField_management('roads', vt)
Combinación con una ValueTable para el parámetro in_features
import arcpy
arcpy.env.workspace = 'C:/base/data/gdb'
vt = arcpy.ValueTable(2)
vt.addRow('counties 2')
vt.addRow('parcels 1')
arcpy.Union_analysis(vt, 'state_landinfo')