Python_列表相减(判断长度后长的减短的)

#定义一个方法,可进行列表相减

class V(object):
    def __init__(self,*value):
        self.value=value
    def __sub__(self,other):
        #取出较长的一个对象,并且取出短的对象的长度备用
        r=len(self.value)
        s=len(other.value)
        
        if s>r:
            r,s=s,r
            
        l=[]     #减法结果临时存放列表
        for i in range(r):
            #当被减数位数长的时候,长出部分的计算方式是...
            if len(self.value)>s and i>s-1:
                l.append(self.value[i])
            #当减数位数长的时候,长出部分的计算方式是...
            elif len(other.value)>s and i>s-1:
                l.append(-other.value[i])
            #在被减数和减数都有数的位置的处理方式是...
            else:
                l.append(self.value[i]-other.value[i])
        #将运算(减法)结果转为v类型并返回
        l=V(*l)
        return l
    #对str进行定制,使以列表形式输出
    def __str__(self):
        return str(self.value)  #转成字符类型,

a=V(1,2,3,4,5,6)
b=V(1,2,3)
print(a-b)

 

posted @ 2018-01-01 16:00  Leq123  阅读(1000)  评论(0编辑  收藏  举报