from timeit import timeit
from array import array
lista = [0.0, 1.0, 1.0, 1.0, 2.0, 3.0, 4.0,
4.0, 5.0, 6.0, 6.0, 7.0, 7.0, 8.0, 8.0]
numbers = array('d', lista)
def slice_lista():
return lista[10]
def slice_mv():
return memoryview(numbers)[10]
params = { 'number' : 100000, 'globals': globals() }
print("Slicing timing using list",timeit('slice_lista()', **params))
print("Slicing timing using array and memoryview",timeit('slice_mv()', **params))
ZnJvbSB0aW1laXQgaW1wb3J0IHRpbWVpdApmcm9tIGFycmF5IGltcG9ydCBhcnJheQoKbGlzdGEgPSBbMC4wLCAxLjAsIDEuMCwgMS4wLCAyLjAsIDMuMCwgNC4wLAogICAgICAgICA0LjAsIDUuMCwgNi4wLCA2LjAsIDcuMCwgNy4wLCA4LjAsIDguMF0KCm51bWJlcnMgPSBhcnJheSgnZCcsIGxpc3RhKQoKZGVmIHNsaWNlX2xpc3RhKCk6CglyZXR1cm4gbGlzdGFbMTBdCgpkZWYgc2xpY2VfbXYoKToKCXJldHVybiBtZW1vcnl2aWV3KG51bWJlcnMpWzEwXQoKcGFyYW1zID0geyAnbnVtYmVyJyA6IDEwMDAwMCwgJ2dsb2JhbHMnOiBnbG9iYWxzKCkgfQpwcmludCgiU2xpY2luZyB0aW1pbmcgdXNpbmcgbGlzdCIsdGltZWl0KCdzbGljZV9saXN0YSgpJywgKipwYXJhbXMpKQpwcmludCgiU2xpY2luZyB0aW1pbmcgdXNpbmcgYXJyYXkgYW5kIG1lbW9yeXZpZXciLHRpbWVpdCgnc2xpY2VfbXYoKScsICoqcGFyYW1zKSkK