| Bug ID Number |
BUG-000126749 |
| Submitted | November 14, 2019 |
| Last Modified | June 5, 2024 |
| Applies to | Portal for ArcGIS |
| Version found | N/A |
| Status | Will Not Be Addressed
The development team has considered the issue or request and concluded it will not be addressed. The issue's Additional Information section may contain further explanation.
|
Additional Information
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.
Workaround
Include the for-loop in a while-loop which runs until the length of the list of layers is equal to zero.
Steps to Reproduce