Выборка значения из словаря

Имеется 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 шт):

Автор решения: CrazyElf

Не знаю, что у вас лежит в df, но, судя по коду и описанию задачи, вы, вероятно, хотите параллельно итерироваться по двум коллекциям. Тогда вам подойдёт такой код:

for lyr,values in zip(df, l.values()):
    if lyr.name=="New Group Layer":
        lyr.name=values

Собственно, вы при этом словарь вообще не используете как именно словарь, вам подошёл бы и просто список значений. Но вполне возможно, что я неправильно понял ваши намерения, без уточнения что у вас в данных и что вы хотите сделать можно только гадать.

→ Ссылка