Stack Overflow на русском Asked by Grechkin 26 on November 20, 2021
Имеется 3 объекта так же есть словарь ключ/значение при попытке достать из словаря значение почему то он берет только последнее значение. Как правильно прописать что бы он брал все значения из словаря т.е 1 объекту присваивается первое значение второму второе и тд
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd)[0]
l={1:"1 этаж", 2:"2 этаж",3:"3 этаж"}
n=0
while n!=3:
addGroup = arcpy.mapping.Layer(r"D:ArcgisNew Group Layer.lyr")
arcpy.mapping.AddLayer(df, addGroup, "BOTTOM")
targetGroupLayer = arcpy.mapping.ListLayers(mxd, "New Group Layer", df)[n]
addLayer = arcpy.mapping.Layer("D:ArcgisNew File Geodatabase.gdbTEST")
arcpy.mapping.AddLayerToGroup(df, targetGroupLayer, addLayer, "BOTTOM")
n=n+1
for lyr in df:
for values in l.values(): #выборка значений из словаря
if lyr.name=="New Group Layer":
lyr.name=values
arcpy.RefreshTOC()
Не знаю, что у вас лежит в df
, но, судя по коду и описанию задачи, вы, вероятно, хотите параллельно итерироваться по двум коллекциям. Тогда вам подойдёт такой код:
for lyr,values in zip(df, l.values()):
if lyr.name=="New Group Layer":
lyr.name=values
Собственно, вы при этом словарь вообще не используете как именно словарь, вам подошёл бы и просто список значений. Но вполне возможно, что я неправильно понял ваши намерения, без уточнения что у вас в данных и что вы хотите сделать можно только гадать.
Answered by CrazyElf on November 20, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP