這篇文章主要介紹了python鏈表的乘法問題怎么解決的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇python鏈表的乘法問題怎么解決文章都會有所收獲,下面我們一起來看看吧。
說明
1、左乘法約定為數乘,即乘以整數n,鏈表的長度增加n倍。
嘗試非數乘的情況:即當兩個鏈表相乘時,用它們的數據域對應相乘的各個節點的值。
2、右乘法也要重載,否則右乘number*Node會報錯,加一行:__rmul__=__mul__。
實例
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) >>> '''
關于“python鏈表的乘法問題怎么解決”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“python鏈表的乘法問題怎么解決”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。