2024-06-06 19:18:50 发布
网友
有没有办法通过slice修改python列表,只使用一个值而不分配内存?在
像这样:
b = range(10) b[2:5] = 1
这里的问题是关于记忆。我不想分配新对象,因为我在嵌入式系统上使用MicroPython,不必要的分配会影响性能。那么我应该使用循环还是有更优雅的方式呢?在
然而,我并不确定python中内存分配是如何工作的。我读过Python很聪明,它根据变量的使用情况在堆栈和堆中分配变量。因此,我不能说如果:
会给垃圾回收器带来一些麻烦。在
当然,最好问问MicroPython开发人员。所以我做了这件事,揭示了很多有趣的事情。在
b[2:5] = [1]*3
分配新对象。 偶数
通过range调用分配内存。虽然我希望这个案例被单独处理以优化代码。尤其是当我们谈论嵌入式系统的python时。在
range
因此,我认为最有效的方法是使用while循环。在
while
x = x1 while x < x2: b[x] = 1 x += 1
当然,最好问问MicroPython开发人员。所以我做了这件事,揭示了很多有趣的事情。在
分配新对象。 偶数
^{pr2}$通过
range
调用分配内存。虽然我希望这个案例被单独处理以优化代码。尤其是当我们谈论嵌入式系统的python时。在因此,我认为最有效的方法是使用
while
循环。在相关问题 更多 >
编程相关推荐