Return 列表理解切片

Return slice from list comprehension

从列表理解返回切片的(单行)语法是什么? 例如:

def foo(iterable):
    ls = [_ for _ in iterable]
    return ls[1:]

为什么不能简单地对列表理解进行切片?

def foo(iterable):
    return [_ for _ in iterable][1:]

在您的情况下,您可以:

list(iterable)[2:] 

但您也可以:

[ i for i in range(10)][2:]

out[1] [2, 3, 4, 5, 6, 7, 8, 9]

其他一些小技巧,从末尾开始切片:

[ i for i in range(10)][-2:]

out[2] [8, 9]

条件列表理解:

[ i for i in range(10) if i%2==0]
out[3] [0, 2, 4, 6, 8]