Skip to main content
 首页 » 编程设计

python之numpy 和操作 a ,b = b, a

2025年05月04日13mq0036

<分区>

我有两个列表 a b,其中包含随机数量的元素(比如 8 个),我想在点 cp 中拆分它们。之后,我想保留列表中 cp 之前的部分,而将 cp 之后的部分更改为另一个列表中的部分。

我使用以下代码:

cp = 4 
a = [1, 3, 2, 4, 5, 8, 7, 6] 
b = [3, 1, 5, 6, 2, 8, 4, 7] 
parents = np.array([a,b]) 
parents[0][cp:], parents[1][cp:] = parents[1][cp:], parents[0][cp:] 
print parents 
 
# Print result: 
# [[1 3 2 4 5 8 7 6] 
#  [3 1 5 6 5 8 7 6]] 

如代码所示,我显然收到了一个错误,因为它在分配结束之前分配了 parents[0] 中的子数组的值。

如果我使用传统的 python 列表,这似乎工作正常:

a = [1,3,2,4, 5,8,7,6] 
b = [3,1,5,6, 2,8,4,7] 
a[cp:] , b[cp:] = b[cp:], a[cp:] 
print a,b 
 
# Print result: 
# [1, 3, 2, 4, 2, 8, 4, 7] [3, 1, 5, 6, 5, 8, 7, 6] 

有没有办法使用以前的符号而不添加第三个变量来完成这项工作?