Ticket #228 (new Task: null)
Opened 5 years ago
Replace Python calls to "for i in range(len(x))" to "for i, v in enumerate(x)"
| Reported by: | jjr8 | Owned by: | jjr8 |
|---|---|---|---|
| Priority: | Low | Milestone: | Unscheduled |
| Component: | Core - Other | Version: | |
| Keywords: | Cc: |
Description
Currently, there are probably a lot of places where this is done:
for i in range(len(x)):
# Do something with i and x[i]
This is normally fine, but if len(x) is large, then the range call can require a lot of memory. This design:
for i, v in enumerate(x):
# Do something with i and v
Requires less memory and is nearly as fast. For an array of 20,000,000 integers, the first design required about 7 seconds to process a certain block of code for each integer. The second design required about 7.25 seconds but only used 1/2 of the memory.
I should review the code for the first design and convert them to the second, if memory could be an issue.
Note: See
TracTickets for help on using
tickets.
