我希望初始化一个不为空的对象数组/列表——类构造函数生成数据。在 C++ 和 Java 中我会做这样的事情:
Object lst = new Object[100];
我已经查过了,但是有没有一种Python式的方法来完成这个任务?
这并不像我想象的那样工作(我得到了 100 个对同一对象的引用):
lst = [Object()]*100
但这似乎按照我想要的方式工作:
lst = [Object() for i in range(100)]
对于 Java 中如此简单的东西,列表理解(从智力上来说)似乎需要“大量”工作。
没有办法隐式调用Object()
像 C++ 中那样为数组的每个元素构造函数(回想一下,在 Java 中,新数组的每个元素都被初始化为null
对于参考类型)。
我想说你的列表理解方法是最 Pythonic 的:
lst = [Object() for i in range(100)]
如果你不想踩到词法变量i
,那么 Python 中的约定是使用_
对于其值无关紧要的虚拟变量:
lst = [Object() for _ in range(100)]
对于 Java 中类似构造的等价物,您当然可以使用*
:
lst = [None] * 100
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)