我在Python中生成一个整数数字的反向单链列表时遇到了问题。我得到的输出完全没有意义。
整数如下。
1000000000000000000000000000466
输出应该是:
[6,6,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
但相反,它是:
[6,6,2,2,4,4,2,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
代码片段如下
*sum3是我要转换为列表的整数。
*计数器3是数字的数量。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
ret = ListNode( sum3%(10) )
sum3 = int(sum3/10)
temp=ret
for i in range(1,counter3):
temp.next = ListNode(sum3%(10))
temp = temp.next
sum3 = int(sum3/10)
return ret
你要做的是从整数中提取数字。 将其转换为字符串是这里的解决方案,因为这样你就可以对字符进行迭代。
比如说,
for c in str(12345):
print(c)
产出
1
2
3
4
5
当然,这将为你产生字符,但你可以很容易地将它们转换回整数。
你还希望你的数字从最小的意义到最大的意义排序。 因此,你需要将列表反过来。
因此,你需要把列表反过来。
ret = [int(c) for c in str(sum3)][::-1]