You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从list comprehension直接返回slice的单行语法是什么?

列表推导式直接返回切片的单行实现方案

你要的同等逻辑单行写法非常简单,直接在列表推导式表达式后追加切片语法即可:

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

原理解释

  • 列表推导式本身是合法的Python表达式,运算结果就是生成的列表对象,无需先赋值给变量就可以直接调用列表的切片操作。
  • 上述写法和你给出的参考写法逻辑完全等价:都会先遍历整个可迭代对象生成完整列表,再截取索引1到末尾的子列表返回。

可选优化方案(仅适用于大体积可迭代对象场景)

如果你遍历的可迭代对象体积很大,不需要生成完整列表就能完成切片,可以配合itertools.islice实现更高效的写法:

from itertools import islice
def foo(iterable):
    return list(islice(iterable, 1, None))

这种写法不会生成前半段不需要的列表元素,内存开销更低。

内容的提问来源于stack exchange,提问作者jamesB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:18:00