Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将对象转换为iterable(列表)?_Python_Python 2.7 - Fatal编程技术网

Python 如何将对象转换为iterable(列表)?

Python 如何将对象转换为iterable(列表)?,python,python-2.7,Python,Python 2.7,我想把一个对象转换成一个iterable 我有格式的输出 >>>result[0] <Particle [0.015270307267929021, -0.0009933688866323714, -0.004208897534490854, -0.011275132115610775, 0.0029132053067140572, 0.005608170262839968, 0.0005401367846572976, -0.013393458586919493

我想把一个对象转换成一个iterable

我有格式的输出

>>>result[0]    
<Particle [0.015270307267929021, -0.0009933688866323714, -0.004208897534490854, -0.011275132115610775, 0.0029132053067140572, 0.005608170262839968, 0.0005401367846572976, -0.013393458586919493, 0.0003998091070805884, 0.0002900137732599478]>
我想使用结果[0]作为列表。
对象的
fstpso.pso.Particle
如下所示:

class Particle(object):

    def __init__(self):
        self.X = []
        self.V = []
        self.B = []
        self.MarkedForRestart = False
        self.CalculatedFitness = sys.float_info.max
        self.FitnessDevStandard = sys.float_info.max
        self.CalculatedBestFitness = sys.float_info.max
        self.SinceLastLocalUpdate = 0

        self.DerivativeFitness = 0
        self.MagnitudeMovement = 0
        self.DistanceFromBest = sys.float_info.max
        self.CognitiveFactor = 2.
        self.SocialFactor = 2.
        self.Inertia = 0.5

        # support for PPSO
        self.MaxSpeedMultiplier = .25
        self.MinSpeedMultiplier = 0

    def __repr__(self):
        return "<Particle %s>" % str(self.X)

    def __str__(self):
        return "\t".join(map(str, self.X))

fstpso.pso.Particle
对象如下所示:

class Particle(object):

    def __init__(self):
        self.X = []
        self.V = []
        self.B = []
        self.MarkedForRestart = False
        self.CalculatedFitness = sys.float_info.max
        self.FitnessDevStandard = sys.float_info.max
        self.CalculatedBestFitness = sys.float_info.max
        self.SinceLastLocalUpdate = 0

        self.DerivativeFitness = 0
        self.MagnitudeMovement = 0
        self.DistanceFromBest = sys.float_info.max
        self.CognitiveFactor = 2.
        self.SocialFactor = 2.
        self.Inertia = 0.5

        # support for PPSO
        self.MaxSpeedMultiplier = .25
        self.MinSpeedMultiplier = 0

    def __repr__(self):
        return "<Particle %s>" % str(self.X)

    def __str__(self):
        return "\t".join(map(str, self.X))

根据您的注释,它是
fstpso.pso.Particle
,如果您只调用以下内容,就可以将其用作迭代器,而无需更改原始源代码

variable = result[0].X
for i in variable:
    print(i)
原始源代码表明
\uuu repr\uuu()
函数正在打印
self.X
值,该值是一个列表

def __repr__(self):
return "<Particle %s>" % str(self.X)
def\uuu repr\uu(自):
返回“%str(self.X)

根据您的评论,它是
fstpso.pso.Particle
,如果您只调用以下内容,就可以将其用作迭代器,而无需更改原始源代码

variable = result[0].X
for i in variable:
    print(i)
原始源代码表明
\uuu repr\uuu()
函数正在打印
self.X
值,该值是一个列表

def __repr__(self):
return "<Particle %s>" % str(self.X)
def\uuu repr\uu(自):
返回“%str(self.X)

您的
结果[0]
似乎只是一个元素
粒子
,在我看来,它包含一个列表。请问
结果[0]
的数据类型是什么?您可以尝试
列表(结果[0])
。在大多数情况下,这应该可以工作,但这个可能不行,因为我将它视为单个元素。它是一个对象
fstpso.pso.Particle
列表(结果[0])
返回
TypeError:“Particle”对象不可编辑
您的
结果[0]
似乎只是一个元素
粒子
,在我看来,它包含一个列表。请问
结果[0]
的数据类型是什么?您可以尝试
列表(结果[0])
。在大多数情况下,这应该可以工作,但这个可能不行,因为我将它视为单个元素。它是一个对象
fstpso.pso.Particle
列表(结果[0])
返回
TypeError:“Particle”对象不可编辑