gpt4 book ai didi

python - 在 Python 中初始化对象列表

转载 作者:太空狗 更新时间:2023-10-29 17:21:27 24 4
gpt4 key购买 nike

我正在寻找初始化非空对象的数组/列表——类构造函数生成数据。在 C++ 和 Java 中,我会做这样的事情:

Object lst = new Object[100];

我已经研究过了,但是否有一种 Pythonic 的方法来完成这项工作?

这并没有像我想象的那样工作(我得到了 100 个对同一个对象的引用):

lst = [Object()]*100

但这似乎以我想要的方式工作:

lst = [Object() for i in range(100)]

对于在 Java 中如此简单的事情,列表理解似乎(在智力上)需要“大量”工作。

最佳答案

没有办法像 C++ 那样为数组的每个元素隐式调用 Object() 构造函数(回想一下,在 Java 中,新数组的每个元素都被初始化为null 对于引用类型)。

我会说你的列表理解方法是最Pythonic的:

lst = [Object() for i in range(100)]

如果你不想踩到词法变量i,那么Python中的一个约定是使用_作为一个值无关紧要的虚拟变量:

lst = [Object() for _ in range(100)]

对于 Java 中类似结构的等价物,您当然可以使用 *:

lst = [None] * 100

关于python - 在 Python 中初始化对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1807026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com