打印列表将返回每个元素的位置,而不是值

时间:2016-01-15 17:32:20

标签: python list python-3.x nodes

我在打印正在创建的列表时遇到问题。

class Node():
    def __init__(self, cargo = None, next = None):
        self.cargo = cargo
        self.next = next
    def __str__(self):
        return str(self.cargo)

node1 = Node(1)
node2 = Node(2)
node3 = Node(3)

node1.next = node2
node2.next = node3

def printList(node):
    i = 0
    nodeList = []
    while node:
        nodeList.append(node)
        node = node.next
    return nodeList

print(printList(node1))

这是输出:

[<__main__.Node object at 0x0189E470>, <__main__.Node object at 0x0189E950>, <__main__.Node object at 0x0189E7B0>]

我相信我目前得到的输出是每个元素存储在我的计算机中的位置。我希望收到的输出是[1,2,3]列表格式。我可以通过单独打印每个元素来做到这一点,但我宁愿不这样做。有人能给我任何建议吗?

1 个答案:

答案 0 :(得分:1)

您的{ "Code" : "Success", "LastUpdated" : "2016-01-15T16:20:09Z", "Type" : "AWS-HMAC", "AccessKeyId" : "xxx", "SecretAccessKey" : "xxx", "Token" : "xxx", "Expiration" : "2016-01-15T23:00:11Z" } 包含nodeList个对象,这些对象是您在打印中获得的,打印列表时,因此请在其上打印:

而不是

Node

呼叫

print(printList(node1))

或使for nod in printList(node1): print(nod) 包含节点的字符串表示,因为该函数被称为nodeList

printList