Skip to main content
 首页 » 编程设计

java之Python 有类似 Java 的 System.arraycopy 的东西吗

2025年05月04日21lidabo

Python 有类似 Java 的 System.arraycopy 的东西吗?我不想只复制引用(浅拷贝),也不想对其进行切片(带新引用的深拷贝)。我想保留目标的引用(因为我有多个变量指向同一个列表)并将单个单元格从源复制到目标。就像 Java 的 arraycopy 一样。到目前为止,我能找到的在 Python 中执行此操作的唯一方法是编写我自己的。在 Java 中,使用 System.arraycopy 比自己滚动更高效,不确定在 Python 中是否如此。

请您参考如下方法:

如果我遵循所描述的行为,切片赋值是执行此操作的 Pythonic 方式:

foo = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
bar = foo 
baz = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] 
foo[0:4] = baz[0:4] 
 
>>> foo 
[10, 9, 8, 7, 4, 5, 6, 7, 8, 9] 
>>> bar 
[10, 9, 8, 7, 4, 5, 6, 7, 8, 9] 

如果源包含对象引用,则会将对相同对象的引用分配到目标中 - 如果您想深度复制源数据,我认为您必须执行以下操作:

foo[0:4] = [copy.deepcopy(x) for x in baz[0:4]]