python - 扩展列表类以创建对象列表

标签 python

我有一个粒子类型对象的粒子列表,它采用两个参数:位置和能量:

class Particle(object):
    def __init__(self, pos, energy):
        self.x = pos
        self.E = energy

到目前为止,我成功做到这一点的唯一方法是使用列表理解创建粒子列表:

number_of_particles = 10
initial_energy = 0
particle_list = [Particle(initial_energy,i) for i in range(number_of_particles)]

现在允许我做这样的事情:

particle_list[0].x

这就是我想要的。

但是,我真正非常喜欢的是做如下事情:

particle_list = ParticleList(no_of_particles, initial_energy)

它创建了完全相同的列表。

我认为我必须以某种方式扩展列表类,但我不知道如何做到这一点。

最佳答案

为什么不直接构建一个函数来为您执行此操作。你可以做一些简单的事情,比如:

def ParticleList(no_of_particles, initial_energy):
    return [Particle(initial_energy,i) for i in range(number_of_particles)]

这应该是获取列表的简单方法。

关于python - 扩展列表类以创建对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30534491/

相关文章:

python - 使用继承 python34 创建交互式命令循环

python - Python 中 Unicode 字符的显示问题(组合字符、假名字符等)

python - 如何在 Boto3 中正确创建并附加 ELB

python - 5 节点 Riak 设置 : 100 ops/sec throughput. 我做错了什么?

python - 如何根据另一个数据框中的查找来选择数据框中的列?

python - 使用 Django 1.8 部署时出现应用程序错误

python - 在循环中逐行填充数组

python - 在日历日期选择器上使用 Selenium

python - 如何从数据框中绘制折线图中的误差条

python - 如何使用 OS 模块访问 CSV 文件