laptop and a wrench

Error

The RemoveLayer function of the WebMap object removes every other layer when included in a for-loop.

Última publicación: November 21, 2019 Portal for ArcGIS
Número de ID del error BUG-000126749
EnviadoNovember 14, 2019
Última modificaciónJune 5, 2024
Relacionado conPortal for ArcGIS
Versión encontradaN/A
EstadoWill Not Be Addressed

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

ID del error: BUG-000126749

Software:

  • Portal for ArcGIS

Recibir notificaciones cuando cambie el estado de un error

Descargar la aplicación de soporte de Esri

Descubrir más sobre este tema

Obtener ayuda de expertos en ArcGIS

Contactar con el soporte técnico

Descargar la aplicación de soporte de Esri

Ir a opciones de descarga