使用arcpy将listlayers转换为列表。(arcproPython3)

2024-04-26 18:54:55 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将lyr变量转换为列表?变量类型列为类“arcpy”_mp.层'. 我应该把它转换成字符串然后插入列表吗?你知道吗

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']

这似乎也没有列入清单


Tags: inlayer列表foroutputmpprintarcpy
1条回答
网友
1楼 · 发布于 2024-04-26 18:54:55

m.listLayers()已返回类型为^{}的层对象列表。你只需要建立一个图层名列表。你可以这样做:

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']]

相关问题 更多 >