[英]How to format the output print statement to print linked list?
所以我試圖在字符串之后打印鏈接列表,但我無法做到。 打印語句在 pop function 里面無序 class
鏈表總是先打印,然后是字符串,即
54 26 56 93 17 77 31 7
Original Linked List: None
我想要的 Output
原始鏈表:54 26 56 93 17 77 31 7
class Node:
def __init__(self, initdata):
self.data = initdata
self.next = None
def getData(self):
return self.data
def getNext(self):
return self.next
def setData(self,newdata):
self.data = newdata
def setNext(self,newnext):
self.next = newnext
class UnorderedList:
def __init__(self):
self.head = None
def isEmpty(self):
return self.head == None
def printList(self):
temp = self.head
while (temp):
print(temp.data, end=" ")
temp = temp.next
print('\n')
def pop(self):
print('Original Linked List:' self.printList())
current = self.head
previous = None
while current.getNext() != None:
previous = current
current = current.getNext()
previous.setNext(current.getNext())
print('New linked list after pop is:', self.printList())
所以我嘗試用
print(f'Orginal Linked List: {self.printList()})
print('Original Linked List: %d' %(self.printList()))
沒有什么能真正起作用我是編程新手,感謝您的幫助。
您需要一個返回列表而不是打印列表的 function。 如果您將其命名為 function __str__
,這是最簡單的,因為只要有任何東西試圖將您的列表轉換為字符串,它就會被自動調用。
改變:
def printList(self):
temp = self.head
while (temp):
print(temp.data, end=" ")
temp = temp.next
print('\n')
至:
def __str__(self):
s = ''
temp = self.head
while temp:
s += str(temp.data) + " "
temp = temp.next
return s[:-1]
然后你可以這樣做:
print(f'Original Linked List: {self})
這將自動調用您的__str__
方法並將結果放入 f-string。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.