I have a class with multiple vectors from measurements. I need to iterate over these vectors but would like to use only chosen measurements. The simplified version of what I build so far is below:
import pylab as pl
class IterationReturn(object):
def __init__(self):
self.a = (1,2,3,4,5,6,7,8,9)
self.b = (10,20,30,40,50,60,70,80,90)
self.c = (-1,-2,-3,-4,-5,-6,-7,-8,-9)
self.i = 0
def returnNextSet(self):
self.aIter = self.a[self.i]
self.bIter = self.b[self.i]
self.cIter = self.c[self.i]
self.i +=1
return (self.aIter, self.bIter, self.cIter)
if __name__ == '__main__':
iteration = IterationReturn()
for i in range(len(iteration.a)):
# x takes aIter value from iteration.returnNextSet()
# y takes bIter value from iteration.returnNextSet()
x,y = iteration.returnNextSet()
pl.scatter(x, y)
pl.show()
I don’t want to use x,y,z = iteration.returnNextSet() which would work in this example, but in practice I have many more values and do not want to assign them all. I can’t find a way to assign only to aIter and bIter.
I have an error:
x,y = iteration.returnNextSet()
ValueError: too many values to unpack
In my problem I have many measurements (a,b, … ,z) and for example I want to assign x=d and y=k
I also think it should be done in different way from the beginning like designing new class with inheritance but not sure how to do that. Would appreciate your help
Not quite sure why you’d want to do this, but here’s one way:
Or: