這篇文章將為大家詳細(xì)講解有關(guān)python鏈表之乘法問題的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
專業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來客戶和效益!創(chuàng)新互聯(lián)公司為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計(jì)制作,服務(wù)好的網(wǎng)站設(shè)計(jì)公司,成都網(wǎng)站制作、成都網(wǎng)站建設(shè)負(fù)責(zé)任的成都網(wǎng)站制作公司!
說明
1、左乘法約定為數(shù)乘,即乘以整數(shù)n,鏈表的長(zhǎng)度增加n倍。
嘗試非數(shù)乘的情況:即當(dāng)兩個(gè)鏈表相乘時(shí),用它們的數(shù)據(jù)域?qū)?yīng)相乘的各個(gè)節(jié)點(diǎn)的值。
2、右乘法也要重載,否則右乘number*Node會(huì)報(bào)錯(cuò),加一行:__rmul__=_mul__。
實(shí)例
def __mul__(self, other): if type(other) is Node: n1,n2 = self.values,other.values product = [p[0]*p[1] for p in zip(n1,n2)] return Node.build(product) if other<0 or type(other) is not int: raise TypeError("other is a non-negetive Integer") if other==0:return Node() ret = self.copy() for _ in range(1,other): self += ret return self __rmul__ = __mul__ ''' >>> a = Node() + range(1,3) >>> a * 0 Node(None->None) >>> a * 1 Node(1->2->None) >>> a * 2 Node(1->2->1->2->None) >>> a * 5 Node(1->2->1->2->1->2->1->2->1->2->None) >>> >>> 3 * a Node(1->2->1->2->1->2->None) >>> a Node(1->2->None) >>> a *= 5 >>> a Node(1->2->1->2->1->2->1->2->1->2->None) >>> >>> >>> a = Node() + range(1,8) >>> b = Node(2) * 7 >>> a * b Node(2->4->6->8->10->12->14->None) >>> b * a Node(2->4->6->8->10->12->14->None) >>> '''
關(guān)于“python鏈表之乘法問題的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。