Python切片没有副本?

aug*_*rar 7 python slice python-3.x

有没有办法在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'
Run Code Online (Sandbox Code Playgroud)

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

vol*_*ano 2

使用itertools库中的islice

编辑:

我明白我在哪里误解了这个问题。嗯,没有这样的事情。如果你想创建你的类,你必须:

  1. 在Slice类中保留对原始列表的引用
  2. 定义__iter____getitem____setitem__方法以通过索引转换处理原始列表