Invert slice in python

list, python, slice

Solution

If you're willing to destroy the list (or a copy of it) you can cut out the part you don't want:

>>> a = [0,1,2,3,4,5,6,7,8,9]
>>> a[3:7] = []
>>> a
[0, 1, 2, 7, 8, 9]

The order is not the same as what you asked for, though that might not be important to you.

Problem

Is there any simple way to invert a list slice in python? Give me everything except a slice? For example: Given the list `a = [0,1,2,3,4,5,6,7,8,9]` I want to be able to extract `[7,8,9,0,1,2]` i.e. everything but a[3:7]. Thinking about it logically, I thought that a[-3:3] would give me what I want, but it only returns an empty list. I am preferring a solution which will work for both python 2 and 3

Original source

Related problems