多值输入

许多地理处理工具都具有接受多值的参数。 任何多值参数(接受数据类型的多个值)或值表(将两种或多种数据类型组合成类似表的结构的参数数据类型)都接受多个值。

多值和值表参数可指定为以下方式:

  • 列表 - 值是列表中的元素。
  • 字符串 - 用分号分隔多个值。
  • ValueTable 对象 - 值存储在虚拟表的行和列中。

在工具参考页面的 Python 选项卡上,多值和值表参数将在参数名称下方的方括号 ([]) 中显示。 例如,删除字段工具有一个多值字段参数,参数用法显示为 [drop_field, ...]联合工具有一个接受输入数据集和等级值的值表参数。 其参数用法显示为 [[in_features, {rank}], ...]

作为列表

Python 中,多值和值表参数可表示为列表。 列表会用括号括起来,并且是灵活的 Python 类型。

DeleteField 函数使用 drop_field 参数的列表。

import arcpy 

arcpy.env.workspace = 'C:/base/county.gdb'
arcpy.management.DeleteField('roads', ['STREET_NAM', 'LABEL', 'CLASS'])

Union 函数使用值表 in_features 参数的列表。

import arcpy

arcpy.env.workspace = 'C:/base/data/gdb' 
arcpy.analysis.Union([['counties', 2],['parcels', 1]], 'state_landinfo')

作为字符串

多值和值表参数可表示为字符串。 在多值参数中,用分号分隔值。 在值表参数中,每行用分号分隔,行内的值用空格分隔。

DeleteField 函数使用多值 drop_field 参数的字符串。

import arcpy 

arcpy.env.workspace = 'C:/base/county.gdb'
arcpy.management.DeleteField('roads', 'STREET_NAM;LABEL;CLASS')

Union 函数使用值表 in_features 参数的字符串。

import arcpy 

arcpy.env.workspace = 'C:/base/data/gdb' 
arcpy.analysis.Union('counties 2;parcels 1', 'state_landinfo')

作为值表

ValueTable 允许您将值组织到虚拟表的行和列中。 创建值表时,您可以指定列数。 默认为单列。

DeleteField 函数使用多值 drop_field 参数的 ValueTable 对象。

import arcpy 

arcpy.env.workspace = 'C:/base/county.gdb'

value_table = arcpy.ValueTable()
value_table.addRow('STREET_NAM')
value_table.addRow('LABEL')
value_table.addRow('CLASS')

arcpy.management.DeleteField('roads', value_table)

Union 函数使用值表 in_features 参数的 ValueTable 对象。

import arcpy 

arcpy.env.workspace = 'C:/base/data/gdb' 

value_table = arcpy.ValueTable(2)
value_table.addRow(['counties', 2])
value_table.addRow(['parcels', 1])

arcpy.analysis.Union(value_table, 'state_landinfo')