本文實例講述了python列表操作的方法。分享給大家供大家參考。
具體實現(xiàn)方法如下:
復制代碼
代碼如下:
class Node:
?? """Single node in a data structure"""
?
?? def __init__(self, data):
????? """Node constructor"""
??????
????? self._data = data
????? self._nextNode = None
????
?? def __str__(self):
????? """Node data representation"""
?
????? return str(self._data)????
?
class List:
?? """Linked list"""
?
?? def __init__(self):
????? """List constructor"""
?
????? self._firstNode = None
????? self._lastNode = None
?
?? def __str__(self):
????? """List string representation"""
?
????? if self.isEmpty():
???????? return "empty"
?
????? currentNode = self._firstNode
????? output = []
?
????? while currentNode is not None:
???????? output.append(str(currentNode._data))
???????? currentNode = currentNode._nextNode
?
????? return " ".join(output)????
?
?? def insertAtFront(self, value):
????? """Insert node at front of list"""
?
????? newNode = Node(value)
?
????? if self.isEmpty():? # List is empty
???????? self._firstNode = self._lastNode = newNode
????? else:?? # List is not empty
???????? newNode._nextNode = self._firstNode
???????? self._firstNode = newNode
????????
?? def insertAtBack(self, value):
????? """Insert node at back of list"""
?
????? newNode = Node(value)
?
????? if self.isEmpty():? # List is empty
???????? self._firstNode = self._lastNode = newNode
????? else:? # List is not empty
???????? self._lastNode._nextNode = newNode
???????? self._lastNode = newNode
?
?? def removeFromFront(self):
????? """Delete node from front of list"""
?
????? if self.isEmpty():? # raise exception on empty list
???????? raise IndexError, "remove from empty list"
?
????? tempNode = self._firstNode
?
????? if self._firstNode is self._lastNode:? # one node in list
???????? self._firstNode = self._lastNode = None
????? else:
???????? self._firstNode = self._firstNode._nextNode
?
????? return tempNode
?
?? def removeFromBack(self):
????? """Delete node from back of list"""
?
????? if self.isEmpty():? # raise exception on empty list
???????? raise IndexError, "remove from empty list"
?????
????? tempNode = self._lastNode
?
????? if self._firstNode is self._lastNode:? # one node in list
???????? self._firstNode = self._lastNode = None
????? else:
???????? currentNode = self._firstNode
?
???????? # locate second-to-last node
???????? while currentNode._nextNode is not self._lastNode:
?????????????? currentNode = currentNode._nextNode
???????????????
???????? currentNode._nextNode = None
???????? self._lastNode = currentNode
?
????? return tempNode
????
?? def isEmpty(self):
????? """Returns true if List is empty"""
?
????? return self._firstNode is None
?? """Single node in a data structure"""
?
?? def __init__(self, data):
????? """Node constructor"""
??????
????? self._data = data
????? self._nextNode = None
????
?? def __str__(self):
????? """Node data representation"""
?
????? return str(self._data)????
?
class List:
?? """Linked list"""
?
?? def __init__(self):
????? """List constructor"""
?
????? self._firstNode = None
????? self._lastNode = None
?
?? def __str__(self):
????? """List string representation"""
?
????? if self.isEmpty():
???????? return "empty"
?
????? currentNode = self._firstNode
????? output = []
?
????? while currentNode is not None:
???????? output.append(str(currentNode._data))
???????? currentNode = currentNode._nextNode
?
????? return " ".join(output)????
?
?? def insertAtFront(self, value):
????? """Insert node at front of list"""
?
????? newNode = Node(value)
?
????? if self.isEmpty():? # List is empty
???????? self._firstNode = self._lastNode = newNode
????? else:?? # List is not empty
???????? newNode._nextNode = self._firstNode
???????? self._firstNode = newNode
????????
?? def insertAtBack(self, value):
????? """Insert node at back of list"""
?
????? newNode = Node(value)
?
????? if self.isEmpty():? # List is empty
???????? self._firstNode = self._lastNode = newNode
????? else:? # List is not empty
???????? self._lastNode._nextNode = newNode
???????? self._lastNode = newNode
?
?? def removeFromFront(self):
????? """Delete node from front of list"""
?
????? if self.isEmpty():? # raise exception on empty list
???????? raise IndexError, "remove from empty list"
?
????? tempNode = self._firstNode
?
????? if self._firstNode is self._lastNode:? # one node in list
???????? self._firstNode = self._lastNode = None
????? else:
???????? self._firstNode = self._firstNode._nextNode
?
????? return tempNode
?
?? def removeFromBack(self):
????? """Delete node from back of list"""
?
????? if self.isEmpty():? # raise exception on empty list
???????? raise IndexError, "remove from empty list"
?????
????? tempNode = self._lastNode
?
????? if self._firstNode is self._lastNode:? # one node in list
???????? self._firstNode = self._lastNode = None
????? else:
???????? currentNode = self._firstNode
?
???????? # locate second-to-last node
???????? while currentNode._nextNode is not self._lastNode:
?????????????? currentNode = currentNode._nextNode
???????????????
???????? currentNode._nextNode = None
???????? self._lastNode = currentNode
?
????? return tempNode
????
?? def isEmpty(self):
????? """Returns true if List is empty"""
?
????? return self._firstNode is None
希望本文所述對大家的Python程序設計有所幫助。
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
