On 30/10/2011 15:02, Gnarlodious wrote:
Initializing a list of objects with one value:
class Order:
def __init__(self, ratio):
self.ratio=ratio
def __call__(self):
return self.ratio
ratio=[1, 2, 3, 4, 5]
Orders=[Order(x) for x in ratio]
But now I want to __init__ with 3 values:
class Order:
def __init__(self, ratio, bias, locus):
self.ratio=ratio
self.bias=bias
self.locus=locus
def __call__(self):
return self.ratio, self.bias, self.locus
ratio=[1, 2, 3, 4, 5]
bias=[True, False, True, False, True]
locus=['A', 'B', 'C', 'D', 'E']
Orders=[Order(x,y,z) for x,y,z in [ratio, bias, locus]]
ValueError: too many values to unpack (expected 3)
How to do it?
Use 'zip':
Orders=[Order(x,y,z) for x,y,z in zip(ratio, bias, locus)]
--
http://mail.python.org/mailman/listinfo/python-list