解压列表索引?

use*_*192 2 python

我经常发现我有这样的事情:

cur = [0, 0] # the indices into array
matrix = [[1,1,1]]
Run Code Online (Sandbox Code Playgroud)

我在哪里

matrix[cur[0]][cur[1]]
Run Code Online (Sandbox Code Playgroud)

这里有任何类型的解包语法吗?喜欢:

matrix[*cur]
Run Code Online (Sandbox Code Playgroud)

wja*_*rea 5

如果您切换到 NumPy 并且使用的是 Python 3.11+,那么是的,这是可行的

\n
import numpy as np\n\ncur = [0, 0]\nmatrix = np.array([[1, 2, 3]])\n\nprint(matrix[*cur])  # -> 1\n
Run Code Online (Sandbox Code Playgroud)\n

在Python 3.11之前,你可以直接转换为元组:

\n
print(matrix[tuple(cur)])  # -> 1\n
Run Code Online (Sandbox Code Playgroud)\n

根据名称matrix,NumPy 在其他方面也可能是更好的解决方案。例如,您可以进行元素运算

\n
\n

注意:Python 3.11 语法更改似乎没有记录在正常位置(新增内容语法)。快速浏览了一下,我只发现它在下面提到typing.Unpack*can\xe2\x80\x99t be use in certain地方”不过PEP 646 对此进行了介绍,其中引入了typing.TypeVarTuple.

\n

  • 哦,对了,他们改变了这一点以支持新的“typing.TypeVarTuple”。语法更改似乎不在“Python 3.11 中的新增功能”页面中。 (3认同)