【问题标题】:Python slicing from last to first element?Python从最后一个元素切片到第一个元素?
【发布时间】:2014-05-21 22:51:37
【问题描述】:

所以我在 python 中有一个元组,我需要从最后一个元素切片到第一个元素,但只想要最后一个和第一个......

示例:

大元组:(1,2,3,4,5)

我想对元组进行切片,所以我最终得到 (5,1)

some_list[::len(some_list)-1]

上面的代码从第一个到最后一个切片,只包括第一个和最后一个......取自here! 所以我需要完全相反的。

【问题讨论】:

  • 没关系只是想通了 :D [-1::-4]) 给了我 5,1
  • 如果您的元组包含 5 个以外的元素,那么您的代码将无法按您期望的方式运行。
  • 我能做到 [-1::-(len(list)-1)] 吗?这似乎有效

标签: python tuples slice


【解决方案1】:

为什么不这样做

new_list = (some_list[-1], some_list[0])

?

【讨论】:

  • 虽然简单的索引更容易阅读/理解它不是我在这种情况下需要的:)
  • 你也没有告诉我们你到底想解决什么问题以及你为什么要做你正在做的事情,所以这就是你可能得到的答案。
  • 是的,你是对的,我意识到这不是一个很有帮助的问题,所以有没有办法删除它?
  • 没关系,我们经常在某种程度上直观地指出解决方案,但正如我所说,在不确切知道您的数据/功能覆盖实际上是什么的情况下,我们不能真正确定您的方式不充分或其他建议的方式是正确的。不过作为参考还是不错的。
【解决方案2】:

此代码有效:

some_list[-1:-len(some_list)-1:-(len(some_list) - 1)]

另一种方式:

some_list[::-len(some_list) + 1]

当然你总是可以的

x[::len(x) - 1][::-1]

【讨论】:

    【解决方案3】:
    a = (1,2,3,4,5)    
    print(a[0],a[-1])
    

    请试试这个。它对我有用,似乎是一个简单的解决方案。

    【讨论】:

      猜你喜欢
      • 2021-12-16
      • 2021-03-14
      • 2015-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-02
      • 2014-11-28
      • 2016-01-22
      相关资源
      最近更新 更多