簡體   English   中英

如何格式化output打印語句打印鏈表?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM