Array Slicing

Array slicing involves taking a subset from an array and allocating a new array with those elements.

In Python 2.7 you can create a new list of the elements in my_list, from start_index to end_index (exclusive), like this:

my_list[start_index:end_index]

You can also get everything from start_index onwards by just omitting end_index:

my_list[start_index:]

Careful: there's a hidden time and space cost here! It's tempting to think of slicing as just "getting elements," but in reality you are:

  1. allocating a new list
  2. copying the elements from the original list to the new list

This takes time and space, where n is the number of elements in the resulting list.

That's a bit easier to see when you save the result of the slice to a variable:

tail_of_list = my_list[1:]

But a bit harder to see when you don't save the result of the slice to a variable:

return my_list[1:] # Whoops, I just spent O(n) time and space!
for item in my_list[1:]: # Whoops, I just spent O(n) time and space! pass

So keep an eye out. Slice wisely.

What's next?

If you're ready to start applying these concepts to some problems, check out our mock coding interview questions.

They mimic a real interview by offering hints when you're stuck or you're missing an optimization.

Try some questions now

. . .