【问题标题】:How to take N elements from the end of a list in Python? N >= zero如何从 Python 列表的末尾获取 N 个元素? N >= 零
【发布时间】:2020-01-11 19:06:25
【问题描述】:

N 的区间包括零,因此简单的切片lst[-n:] 不是这里的解决方案。我正在寻找来自 Scala 的 takeright 之类的东西。

目前的解决方案:

lst = [1, 2, 3]
print(lst[len(lst) - n :])

【问题讨论】:

  • “N 包括零”是什么意思?不清楚你在问什么,或者为什么 lst[-n:] 不是解决方案
  • @Sayse 他们可能的意思:如果n 为0,他们想要一个空列表。 lst[-n:] 在这种情况下是 lst[0:],它是整个列表的副本。
  • @glglgl - 很公平。可能重复:Python negative zero slicing

标签: python python-3.x


【解决方案1】:

根据你的要求,只需要处理特例n == 0即可。

lst = [1, 2, 3]
print(lst[-n:] if n else [])

可能是最短的。最简单的。

如果你不喜欢这样,你可能应该坚持你的解决方案。

【讨论】:

  • 在 Python 函数库中没有此类工具吗?
【解决方案2】:

N 包括零,因此简单的切片 lst[-n:] 不是这里的解决方案。

如果你想处理 n 小于等于0 的情况,那么你可以在 Python 中使用ternary operator。像这样:

result = li[-n:] if n > 0 else []

或者

您也可以使用answer 中提到的解决方案! (感谢@glglgl)

【讨论】:

    猜你喜欢
    • 2015-02-10
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    相关资源
    最近更新 更多