Python列表切片存在特殊字符

时间:2016-05-08 14:18:53

标签: python list slice

X_train[y_train == y, :, :]
all_obs[train_index, ...]

这两行代码意味着什么?逗号在这里意味着什么?什么" ..."在这里意味着什么?

1 个答案:

答案 0 :(得分:0)

如果您定义了一个实现__getitem__的类,您可以检查详细信息:

class Foo(object):
    def __getitem__(self, *xs, **kws):
        return [xs, kws]

X_train = Foo()
all_obs = Foo()

y_train = 123
y = 123
train_index = 456

print X_train[y_train == y, :, :]
print all_obs[train_index, ...]

输出:

[((True, slice(None, None, None), slice(None, None, None)),), {}]
[((456, Ellipsis),), {}]

看起来冒号定义了一个空切片对象,省略号在上面评论(What does the Python Ellipsis object do?)中提供的链接中讨论。