Выборка значения из словаря
Имеется 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:\Arcgis\New Group Layer.lyr")
arcpy.mapping.AddLayer(df, addGroup, "BOTTOM")
targetGroupLayer = arcpy.mapping.ListLayers(mxd, "New Group Layer", df)[n]
addLayer = arcpy.mapping.Layer("D:\Arcgis\New File Geodatabase.gdb\TEST")
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()
Ответы (1 шт):
Не знаю, что у вас лежит в df, но, судя по коду и описанию задачи, вы, вероятно, хотите параллельно итерироваться по двум коллекциям. Тогда вам подойдёт такой код:
for lyr,values in zip(df, l.values()):
if lyr.name=="New Group Layer":
lyr.name=values
Собственно, вы при этом словарь вообще не используете как именно словарь, вам подошёл бы и просто список значений. Но вполне возможно, что я неправильно понял ваши намерения, без уточнения что у вас в данных и что вы хотите сделать можно только гадать.