使用 arcpy 将列表层转换为列表。 (arcpro python3)
converting listlayers into a list using arcpy . (arcpro python3)
如何将 lyr 变量转换为列表?变量类型列为 class 'arcpy._mp.Layer'。我应该将其转换为字符串然后插入到列表中吗?
import arcpy
aprx = arcpy.mp.ArcGISProject("./test.aprx")
for m in aprx.listMaps():
for lyr in m.listLayers():
print (lyr)
output
layer1
layer2
layer3
desired output
['layer1', 'layer2', 'layer3']
例如:2
for m in aprx.listMaps():
for lyr in m.listLayers():
layer = [str(lyr)]
print (layer)
output
['layer1']
['layer2']
['layer3']
这似乎也没有进入列表
m.listLayers()
已经 returns 类型为 arcpy._mp.Layer
的层对象列表。您只需要构建一个图层名称列表。方法如下:
import arcpy
aprx = arcpy.mp.ArcGISProject("./test.aprx")
map_layers = [] # list of lists where each sublist contains layer names for each map in project
for m in aprx.listMaps():
lyr_names = [] # initialize an empty list and append layer names to it in every iteration
for lyr in m.listLayers():
lyr_names.append(lyr.name)
map_layers.append(lyr_names)
print(map_layers)
因此,如果您的项目有 2 张地图,其中每张地图各有 3 个图层,则上面的代码片段将打印如下结果:
[['Map 1 Layer 1 Name', 'Map 1 Layer 2 Name', 'Map 1 Layer 3 Name'],
['Map 2 Layer 1 Name', 'Map 2 Layer 2 Name', 'Map 2 Layer 3 Name']]
如何将 lyr 变量转换为列表?变量类型列为 class 'arcpy._mp.Layer'。我应该将其转换为字符串然后插入到列表中吗?
import arcpy
aprx = arcpy.mp.ArcGISProject("./test.aprx")
for m in aprx.listMaps():
for lyr in m.listLayers():
print (lyr)
output
layer1
layer2
layer3
desired output
['layer1', 'layer2', 'layer3']
例如:2
for m in aprx.listMaps():
for lyr in m.listLayers():
layer = [str(lyr)]
print (layer)
output
['layer1']
['layer2']
['layer3']
这似乎也没有进入列表
m.listLayers()
已经 returns 类型为 arcpy._mp.Layer
的层对象列表。您只需要构建一个图层名称列表。方法如下:
import arcpy
aprx = arcpy.mp.ArcGISProject("./test.aprx")
map_layers = [] # list of lists where each sublist contains layer names for each map in project
for m in aprx.listMaps():
lyr_names = [] # initialize an empty list and append layer names to it in every iteration
for lyr in m.listLayers():
lyr_names.append(lyr.name)
map_layers.append(lyr_names)
print(map_layers)
因此,如果您的项目有 2 张地图,其中每张地图各有 3 个图层,则上面的代码片段将打印如下结果:
[['Map 1 Layer 1 Name', 'Map 1 Layer 2 Name', 'Map 1 Layer 3 Name'],
['Map 2 Layer 1 Name', 'Map 2 Layer 2 Name', 'Map 2 Layer 3 Name']]