在 Python 中制作整数数字单链表的最佳方法是什么?
What is the best way to make a singly linked list of integer digits in Python?
我在生成 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 是我要转换为列表的整数
*counter3为位数
# 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]
我在生成 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 是我要转换为列表的整数
*counter3为位数
# 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]