Python 如何将对象转换为iterable(列表)?
我想把一个对象转换成一个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
>>>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”对象不可编辑