我有一个班级,有多个测量向量。我需要迭代这些向量,但只想使用选定的测量。到目前为止,我构建的简化版本如下:
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()
我不想在本例中使用x,y,z = iteration.returnNextSet()
,但实际上我有更多的值,不想全部赋值。我找不到只分配给aIter
和bIter
的方法。你知道吗
我有个错误:
x,y = iteration.returnNextSet()
ValueError: too many values to unpack
在我的问题中,我有许多测量(a,b。。。,z)例如,我想指定x=d和y=k 我还认为应该从一开始就用不同的方式来完成,比如用继承设计新类,但不确定如何做到这一点。谢谢你的帮助
不太清楚你为什么要这么做,但有一种方法:
或:
只要做:
然后将这些值称为
results[0]
、results[1]
,依此类推。你可以做len(results)
看看你有多少。你知道吗最好的方法是返回字典:
然后可以指定:
是的。你知道吗
保留当前函数,可以指定前两个值:
在Python3中,您可以将其余的值赋给另一个元组:
相关问题 更多 >
编程相关推荐