我可以使用切片方法返回排除原始列表中间范围的列表吗?

Moo*_*lla 5 python list range slice

有没有办法slice通过整个列表,同时排除列表中间的一系列值或多个值范围?
例如:

list = [1,2,3,4,5,6,7,8,9,0]
print list[......] #some code inside  
Run Code Online (Sandbox Code Playgroud)

我想上面的代码以打印清单,同时排除的值的范围,以便输出将是:[1,2,3,8,9,0]或排除多个值的范围,以便输出将是:[1,2,6,7,0]通过使用切片表示法或其它任何简单的方法可以建议.

jam*_*lak 2

>>> nums = [1,2,3,4,5,6,7,8,9,0]
>>> exclude = set(range(4, 8))
>>> [n for n in nums if n not in exclude]
[1, 2, 3, 8, 9, 0]
Run Code Online (Sandbox Code Playgroud)

另一个例子

>>> exclude = set(range(4, 8) + [1] + range(0, 2))
>>> [n for n in nums if n not in exclude]
[2, 3, 8, 9]
Run Code Online (Sandbox Code Playgroud)