Python是否有类似Java的System.arraycopy?我不想只复制参考(浅拷贝),也不想分片(深拷贝w /新参考)。我想保留目标的引用(因为我有多个变量指向同一个列表)并将单个单元格从源复制到目标。完全像Java的arraycopy。到目前为止,我可以找到在Python中执行此操作的唯一方法是编写我自己的代码。在Java中,使用System.arraycopy比使用自己的方法更高效,不确定在Python中是否如此。Python是否有类似于Java的System.arraycopy?
1
A
回答
8
如果我按照所描述的行为,切片分配是Python的方式来做到这一点:
foo = range(10)
bar = foo
baz = range(10, 0, -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]]
1
更新:彼得DeGlopper的方法是更好的方式。去那个。
对不起,这是最好的你:
def arrayCopy(src, srcPos, dest, destPos, length):
for i in range(length):
dest[i + destPos] = src[i + srcPos]
相关问题
- 1. Scala/java是否有类似Python的StringIO?
- 2. 是否有类似于Java中
- 3. 在Python中是否有类似于Java IllegalStateException的错误?
- 4. C++相当于Java的System.arraycopy
- 5. 是否有类似Python的urllib2的库?
- 6. Java中是否有水平线类,类似于Point/Rectangle类?
- 7. 是否有类似Python的枚举linq
- 8. Javascript中是否有类似Python的numpy.apply_along_axis?
- 9. asp.net中是否有类似java的servlet
- 10. 是否有类似于PdfReader的WordReader?
- 11. Flex是否有类似于jQuery的库?
- 12. 是否有类似于“with”的功能?
- 13. angularjs是否有类似于jQuery的ajaxSetup?
- 14. 是否有类似于SMS的扩展?
- 15. 是否有类似于OnOrientationChanged的方法?
- 16. iOS是否有类似于Android的RecyclerView?
- 17. Python是否具有与Java的CountDownLatch类似的控制机制?
- 18. 在OpenMP中是否有类似于Python的threading.Event的机制?
- 19. 是否有类似于Java中的pyparsing的库?
- 20. 在java中是否有类似于swift的dynamicType的关键字
- 21. 是否有.NET WPF中的控件类似于Java的javax.swing.Box Strut?
- 22. 是否有类似于Java的lxml或nokogiri的库?
- 23. 是否有类似于Java/C++的for循环的Ruby版本?
- 24. python是否有类似php java的桥梁?
- 25. 类似于Python的Java类列表
- 26. 在python中是否有类似于osgi试图在java中解决的要求?
- 27. 是否有类似于Python计数器功能的Javascript函数?
- 28. python是否在Mathematica中具有类似于“Chop”的功能?
- 29. 在Python中是否有类似于ftp的isfile()isdir()?
- 30. 是否有类似于appfuse的java web应用程序模板?
正是我一直在寻找,谢谢! – JeffHeaton