【问题标题】:Slicing list with respect to limits关于限制的切片列表
【发布时间】:2021-10-16 22:51:30
【问题描述】:

我有以下关于切片数组的问题。

我有一个表单数组:

a = [0,1,2,3,4,5,6,7,8,9,10]

我想提取一个这样的数组:

b = [8,9,10,0,1,2,3].

我尝试使用通常的声明,例如:b = a[-3:3],但它返回一个空数组,因为它超出了数组限制。

我不知道如何以正确的排列方式提取此数组。

【问题讨论】:

  • 你的索引系统是一个循环吗?我认为您必须编写一个函数来执行此操作。
  • 是的,我现在也意识到了。目前,我可以使用 NMme 给出的答案。
  • 抱歉,我以为它们是 numpy 数组而不是列表。
  • 建议将标题改为“切片列表”而不是“切片数组”。

标签: python arrays numpy


【解决方案1】:

在您的示例中,您保留了所有数组元素。为此,有一个名为roll 的函数。

>>> import numpy as np
>>> a = [0,1,2,3,4,5,6,7,8,9,10]
>>> np.roll(a, 3)
array([ 8,  9, 10,  0,  1,  2,  3,  4,  5,  6,  7])

您也可以使用负数来滚动其他方式:

>>> np.roll(a, -3)
array([ 3,  4,  5,  6,  7,  8,  9, 10,  0,  1,  2])

【讨论】:

    【解决方案2】:

    您可以只连接您要查找的列表切片:

     b = a[-3:] + a[:4]
    

    【讨论】:

      猜你喜欢
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多