Python 如何从数字';s数字?

Python 如何从数字';s数字?,python,linked-list,singly-linked-list,Python,Linked List,Singly Linked List,我定义了一个类来创建一个链表,如下所示: class ListNode(object): def __init__(self, x): self.val = x self.next = None 现在,我已经生成了一个数字“sum”,并编写了以下代码来生成链表:(假设sum可能有3或4位数字) 有没有一种方法可以使用数字“sum”的长度生成上述内容,而不必像上面那样进行硬编码?您可以这样做: s = str(975) start_node = node

我定义了一个类来创建一个链表,如下所示:

class ListNode(object):
    def __init__(self, x):
        self.val = x
        self.next = None
现在,我已经生成了一个数字“sum”,并编写了以下代码来生成链表:(假设sum可能有3或4位数字)


有没有一种方法可以使用数字“sum”的长度生成上述内容,而不必像上面那样进行硬编码?

您可以这样做:

s = str(975)

start_node = node = ListNode(s[-1])  # initialize to last character in s
for c in reversed(s[:-1]):
    node.next = ListNode(c)
    node = node.next
start\u节点
现在应该包含第一个节点;从那里可以
.next
到下一个节点<代码>节点始终指向循环中的当前节点(可以在循环后丢弃)

请注意,这是一个内置函数,因此不是一个好的变量名

上述代码的输出:

print(start_node.val)             # 5
print(start_node.next.val)        # 7
print(start_node.next.next.val)   # 9
print(start_node.next.next.next)  # None

您甚至可以将上面的代码编写得更紧凑(但在imo中可读性要差得多):


我将更改变量名“sum”。解决方案有效!谢谢
print(start_node.val)             # 5
print(start_node.next.val)        # 7
print(start_node.next.next.val)   # 9
print(start_node.next.next.next)  # None
start_node = node = ListNode(s[-1])
for c in reversed(s[:-1]):
    node.next = node = ListNode(c)