__init__ with multiple list values

Gnarlodious gnarlodious at gmail.com
Sun Oct 30 11:02:22 EDT 2011


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?
-- Gnarlie


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /