TransWikia.com

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

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()

One Answer

Не знаю, что у вас лежит в 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

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP