2

python ref http://docs.python.org/2/reference/datamodel.html 说:

一些序列还支持带有第三个“step”参数的“扩展切片”:a[i:j:k] 选择索引为 x 的 a 的所有项,其中 x = i + n*k,n >= 0 和 i <= x <j。

那么哪个序列类型不支持“扩展切片”呢?

4

1 回答 1

2

这些天来,它将是任何不想/不需要支持它的用户定义的序列。当前所有的 Python 内置函数都可以;在过去- 情况并非如此......请参阅http://www.python.org/dev/peps/pep-0283/,你会看到......

所有内置序列的扩展切片符号。Michael Hudson 的补丁现已全部签入。

这涉及到:

http://docs.python.org/release/2.3.4/whatsnew/section-slices.html

从 Python 1.4 开始,切片语法就支持可选的第三step'' or步“参数”。例如,这些都是合法的 Python 语法:L[1:10:2]、L[:-1:1]、L[::-1]。这是应 Numerical Python 开发人员的要求添加到 Python 中的,它广泛使用了第三个参数。但是,Python 的内置列表、元组和字符串序列类型从未支持此功能,如果您尝试过,则会引发 TypeError。Michael Hudson 贡献了一个补丁来解决这个缺点。

于 2013-09-20T09:08:22.990 回答