Python切片没有副本?

时间:2015-02-18 02:34:09

标签: python python-3.x slice

有没有办法创建一个"切片视图" Python 3中的一个序列,其行为类似于常规切片,但不会创建序列切片部分的副本?更新原始序列时,"切片视图"应反映更新。

>>> l = list(range(100))
>>> s = Slice(l, 1, 50, 3)  # Should behave like l[1:50:3]
>>> s[1]
4
>>> l[4] = 'foo'
>>> s[1]  # Should reflect the updated value
'foo'

我可以编写自己的Slice类,但我想知道是否有内置方式。

1 个答案:

答案 0 :(得分:2)

使用 itertools 库中的islice

修改

我看到我误解了这个问题的地方。 好吧,没有这样的事情。如果您想创建课程,则必须:

  1. Slice
  2. 中保留对原始列表的引用
  3. 使用索引转换定义 __ iter __ __ getitem __ __ setitem __ 方法以处理原始列表