【发布时间】:2017-04-30 20:15:25
【问题描述】:
考虑多重赋值x[0],y = y,x[0]。应用到以下四种情况中的每一种,这会产生四种不同的结果。
-
案例一:
x = [[1,2], [3,4]] y = [5,6]给予
x = [[5,6], [3,4]] y = [1,2] -
案例 2:
x = np.array([[1,2], [3,4]]) y = [5,6]给予
x = array([[5,6], [3,4]]) y = array([5,6]) -
案例 3:
x = [[1,2], [3,4]] y = np.array([5,6])给予
x = [array([5,6]), [3,4]] y = [1,2] -
案例 4:
x = np.array([[1,2], [3,4]]) y = np.array([5,6])给予
x = array([[5,6], [3,4]]) y = array([5,6])
列表的多重赋值似乎比 Numpy 数组的多重赋值更智能(自动通过临时变量)。
想法?
编辑:毕竟不是更聪明...
【问题讨论】:
-
“看起来列表的多重赋值比 Numpy 数组的多重赋值更智能(自动通过一个临时变量)。” - 为何如此?当分配给 Numpy 数组时,它会将其变成 Numpy 数组的一部分。
标签: python numpy assignment-operator python-internals