The syntax在 shell 中工作正常,只是这样list
objects不支持扩展切片。你尝试过的引起了TypeError
, not a SyntaxError
.
Many Numpy http://www.numpy.org/数组类型可以;该项目在推动扩展切片语法方面发挥了重要作用。 Numpy 数组使用扩展切片来处理多维数组的不同维度。请参阅Numpy Indexing chapter http://docs.scipy.org/doc/numpy-1.10.1/user/basics.indexing.html有关它们如何使用语法的详细信息。
扩展切片是明确记录在订阅 section https://docs.python.org/2/reference/expressions.html#slicings,AST 节点编码extended_slicing
term:
extended_slicing ::= primary "[" slice_list "]"
slice_list ::= slice_item ("," slice_item)* [","]
slice_item ::= expression | proper_slice | ellipsis
proper_slice ::= short_slice | long_slice
然而,Python 标准库本身没有使用扩展切片的类型。
您可以轻松构建自己的类来接受扩展切片;只是期望处理你的元组object.__getitem__() method https://docs.python.org/2/reference/datamodel.html#object.__getitem__执行:
>>> class Foo(object):
... def __getitem__(self, item):
... return item
...
>>> foo = Foo()
>>> foo[1, 2:3]
(1, slice(2, 3, None))
的每个元素slice_list
成为元组中的对象,其中:
- 传入的分隔切片索引为slice()
实例。