| Número de ID del error |
BUG-000126749 |
| Enviado | November 14, 2019 |
| Última modificación | June 5, 2024 |
| Relacionado con | Portal for ArcGIS |
| Versión encontrada | N/A |
| Estado | Will Not Be Addressed
El equipo de desarrollo ha considerado el problema o la solicitud y ha llegado a la conclusión de que no se va a solucionar. La sección Información adicional del problema puede contener más explicaciones.
|
Información adicional
This is not a bug. This behavior is how Python (and languages like JS) handles lists in memory. The user can use the workaround or simply call the clear() method as shown below:
>>> wm = WebMap(wm_item)
>>> wm.layers.clear() # removes all layers by calling the built-in clear() method off List obj
Long explanation
This pattern of looping through elements of a List and removing it not the best practice. Consider the case below:
>>> my_list = list(range(0,10))
>>> print(my_list) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# remove by looping
>>> for element in my_list:
print(element)
my_list.remove(element)
# prints 0,2,4,6,8
>>> print(my_list) # [1, 3, 5, 7, 9]
The issue is reproducible even with simple List objects. The best way to clear a list is to imply initialize it to an empty list [ ] or call clear() method.
Solución alternativa
Include the for-loop in a while-loop which runs until the length of the list of layers is equal to zero.
Pasos para reproducir