Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何重写列表[1:10]中的[]运算符?_Python_List - Fatal编程技术网

Python 如何重写列表[1:10]中的[]运算符?

Python 如何重写列表[1:10]中的[]运算符?,python,list,Python,List,如何实现自定义列表,以便覆盖list[a:b]的实现 提前谢谢 定义自定义索引的方法。实现;如果是切片,则传入一个 一个简单的版本可以是: def __getitem__(self, index): if isinstance(index, slice): return [self[i] for i in range(*slice.indices(len(self)))] return self._internal_sequence[index] 请注意,对于片

如何实现自定义列表,以便覆盖
list[a:b]
的实现

提前谢谢

定义自定义索引的方法。

实现;如果是切片,则传入一个

一个简单的版本可以是:

def __getitem__(self, index):
    if isinstance(index, slice):
        return [self[i] for i in range(*slice.indices(len(self)))]
    return self._internal_sequence[index]
请注意,对于片分配和片删除,还必须实现和挂钩


重写现有容器类型时,还必须处理;它已被弃用,但Python 2类型仍然实现它。同样,切片分配和删除也有相应的和钩子。

我认为您的问题在于不知道它的名称。你需要一个索引器。见.相关链接: