差异在" Matrix [::] ="和"矩阵="在Python3中

时间:2018-03-04 09:16:13

标签: python python-3.x

以下两行有什么不同。

我知道[:: - 1]会反转矩阵。但我想知道LHS方面的[::]' ='是的,因为没有迭代每个元素,如果第一种情况下矩阵如何就地反转。

  1. matrix[::] = matrix[::-1]
  2. matrix = matrix[::-1]

1 个答案:

答案 0 :(得分:0)

您正在寻找的技术称为slicing。它是一种在某个容器中引用元素的高级方法。您可以使用切片来引用一系列元素,而不是使用单个索引。

切片由 start end step 组成,如此matrix[start:end:step]。您可以跳过某些部分,将采用默认值 - 0,len(矩阵),1。

当然,container必须支持此技术(协议)。

matrix[::] = # get all elements of the matrix and assign something to them
matrix = # link matrix name with something
matrix[::-1] # get all elements of the matrix in reversed order

所以,第一个实际上是在同一个对象的不同位置复制元素。

第二个是将名称矩阵与从矩阵切片构造的新对象链接起来。