Code refactoring is crucial but often overlooked. It can improve the design and performance of existing code.

The Python code below takes about 14 seconds to complete. Refactor the getData function to make it run in less than 10 seconds. Post your answer in the comments.

import timedef getData():
arr = []
for i in range(1000*1000*50):
arr.append(i)
lo, hi = 0, 0
for x in arr:
if x < lo:
lo = x
if x > hi:
hi = x
print(lo, hi)
return arr
def timed(func):
def run():
Tstart = time.time()
func()
Tend = time.time()
Tdt = round(Tend - Tstart, 2)
print(Tdt, 'seconds')
return run
@timed
def main():
data = getData()
print('len:', len(data), 'sum:', sum(data))
main()

--

--

Code refactoring is crucial but often overlooked. It can improve the design and performance of existing code.

The Python code below takes about 17 seconds to complete. Refactor the getData function to make it run in less than 5 seconds. Post your answer in the comments.

import timedef getData():
arr = [5] * 1000 * 1000 * 100
for i in range(1, len(arr)):
if i % 5 == 0:
arr[i] = 0
return arr
def timed(func):
def run():
Tstart = time.time()
func()
Tend = time.time()
Tdt = round(Tend - Tstart, 2)
print(Tdt, 'seconds')
return run
@timed
def main():
data = getData()
print('len:', len(data), 'sum:', sum(data))
main()

--

--

Code refactoring is crucial but often overlooked. It can improve the design and performance of existing code.

The Python code below takes about 12 seconds to execute. Refactor the getData function to make it run in less than 1 second. Post your answer in the comments.

import timedef getData():
arr = []
for i in range(1000*1000*100):
arr.append(5)
return arr
def timed(func):
def run():
Tstart = time.time()
func()
Tend = time.time()
Tdt = round(Tend - Tstart, 2)
print(Tdt, 'seconds')
return run
@timed
def main():
print(len(getData()))
main()

--

--