手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

Mathematica 下ReplacePart 与 Part 的区别

时间:2024-10-13 00:44:33

从字面上来看 ReplacePart 与 Part 两个函数却有相同点: 都与表达式的位置数字索引相关. ReplacePart 根据给出的位置索引进行替换, 而 Part 是按照位置索引取出某元素或进行重新赋值的操作.

Mathematica 下ReplacePart 与 Part 的区别

但在在这个小节, 我想跟大家就这两个函数的区别谈一谈:

第一点, 也是最重要的一点: ReplacePart 并不修改原来的列表, 会在内存空间从新分配一块空间, 按照要修改的部分和未变化的部分建立新的表达式. 而 Part 会直接修改 (这是 Part 最为特殊的地方! 从理论上来讲效率会高那么一点点 ). 再次查看 lst1 和 lst2 , 就会验证给结论.

Mathematica 下ReplacePart 与 Part 的区别

第二点, 两个函数对于索引越界情况, 处理方式并不相同. ReplacePart 会直接忽略, 而 Part 则会抛出一个part wrong 的错误消息.

Mathematica 下ReplacePart 与 Part 的区别

第三点, 两者相比 Part 更加灵活且支持切片, 例如下面想要把某个列表中的第 4 到 6 位置的元素替换为新的表达式, 显而易见 Part 实现起来就非常简洁.

Mathematica 下ReplacePart 与 Part 的区别

© 手抄报圈