Выборка значений из списка

как прописать чтобы при каждом прохождении цикла из списка выбиралось новое значение ? В данном варианте при прохождении цикла из списка берется первое значение lyr.name=l[0] а нужно чтобы каждый раз там было следующее т.е lyr.name=l[1], lyr.name=l[2] и тк. К сожалению мои знания по питону оч малы так что прошу сильно не пинать :)

l=[] #список
n = 0
while n!=8:
    addLayer = arcpy.mapping.Layer("...")
    arcpy.mapping.AddLayerToGroup(df, targetGroupLayer, addLayer, "BOTTOM")
    for lyr in targetGroupLayer:
        if lyr.name!="New Group Layer":
            lyr.name=l[0]
    n=n+1
arcpy.RefreshTOC()

Ответы (2 шт):

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

Прохождение циклом по списку в питоне можно реализовать несколькими способами:

Пусть у нас имеется список:

lst = ['one', 'two', 'three']
  1. Получение элементов списка в качестве значения счетчика:
for el in lst:
    print(el)
# вывод:
# one
# two
# three
  1. Получение в счетчике индекса элемента:
# здесь len(lst) возвращает количество элементов в списке, 
# а range() возвращает итерируемый объект, содержащий 
# ряд чисел от 0 до указанного максимума.
for i in range(len(lst)): 
    print(i, lst[i])
# вывод:
# 0 one
# 1 two
# 2 three
  1. Получение пары индекса и элемента через функцию enumerate()
for i, v in enumerate(lst):
    print(i, v)
# вывод:
# 0 one
# 1 two
# 2 three
→ Ссылка
Автор решения: Grechkin 26

Ответ оказался до боли прост

l=[] #список
n = 0
while n!=8:
    addLayer = arcpy.mapping.Layer("...")
    arcpy.mapping.AddLayerToGroup(df, targetGroupLayer, addLayer, "BOTTOM")
    for lyr in targetGroupLayer:
        if lyr.name!="New Group Layer":
            if lyr.name=="...":    # необходимо добавить доп условие которое исключает уже переименованные на предыдущем цикле объекты
                lyr.name=l[n] # вместо lyr.name=l[0] нужно ставить lyr.name=l[n]
    n=n+1
arcpy.RefreshTOC()
→ Ссылка