python - 使用变量进行切片时如何使用单冒号?

标签 python slice

我想使用一个变量来存储切片表达式。 这是我的尝试:

    if variable is not None:
        var = variable
    elif self.__filter is not None:
        var = self.__filter
    else:
        # this doesn't work, : alone understandably gives a syntax error
        var = ':'

然后在这里使用var:

return stuff[var]

我想这样做是为了在我的代码中获得更好的结构。另一种方法是根据大小写返回此表达式:

return stuff[variable]
return stuff[self.__filter]
return stuff[:]

引发异常:ValueError:以 10 为底的 int() 无效文字

有没有办法将冒号分配给 var 以便它可以用于切片表达式(转义或类似的东西)或者我必须使用 var = slice(0, self.getNumberOfVariables()) 代替?

P.S.:我问之前确实搜索过,但没有找到这样的东西。对不起,如果我错过了一个副本。

最佳答案

不能直接使用冒号。它是操作的文字符号; Python 通常不允许直接使用这种标点符号,而是需要使用一个函数(参见 operator 模块中的算术运算符和相应的函数)。

要使用的函数是内置函数 slice,它返回切片的显式表示。使用 slice(None) 来包含所有内容。

一个例子:

>>> s = slice(None)
>>> x = range(10)
>>> x[s]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

关于python - 使用变量进行切片时如何使用单冒号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14749415/

相关文章:

python - 我的 models.py 有什么问题

python - 如何将二维列表转换为二维 numpy 数组?

Python IPC - Twisted、RabbitMQ、

for-loop - 仅迭代 Go 模板中数组的前 n 项

python - 在 Python 中按地址拆分字符串,就像在 C 中一样(Python 的字符串切片)

java - 获取 Nd4j 数组的任意切片

validation - 将错误片段转换为 golang 中的结构片段

python - 无法确定 NumPy 数组的切片索引

python - Pandas 等级法中的力增量

python - Jupyter不会在当前目录下创建新的笔记本