Выборка значений из списка
как прописать чтобы при каждом прохождении цикла из списка выбиралось новое значение ? В данном варианте при прохождении цикла из списка берется первое значение 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']
- Получение элементов списка в качестве значения счетчика:
for el in lst:
print(el)
# вывод:
# one
# two
# three
- Получение в счетчике индекса элемента:
# здесь len(lst) возвращает количество элементов в списке,
# а range() возвращает итерируемый объект, содержащий
# ряд чисел от 0 до указанного максимума.
for i in range(len(lst)):
print(i, lst[i])
# вывод:
# 0 one
# 1 two
# 2 three
- Получение пары индекса и элемента через функцию
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()