我必须将一个数字转换成链表,这样每个数字都在一个节点中,并且指向下一个节点数字函数应该返回链表的头。e、 g input 120应创建节点1->;2->;0的列表并返回参考。如果它是一个负数,比如说-120,它应该返回-1->;-2->;0。我试着这样做:
def number_to_list(number):
head,tail = None,None
for x in str(number):
if x<0:
x = -int(x)
node = Node(int(x))
else:
node = Node(int(x))
if head:
tail.next = node
else:
head = node
tail = node
return head
pass
对于正数,它工作正常,但如果我通过-120,则显示错误:
ValueError: invalid literal for int() with base 10: '-'.
我怎样才能修好它。你知道吗
在第一次使用负数的迭代中,您实际执行:
str(-120)返回“-”、“1”、“2”、“0”
试试这个:
问题是你在一个字符串上迭代
使x成为一个字符,它在字符串编号上进行迭代。现在,当你有一个正数时,数字中的每一个数字都可以转换成一个整数。但是当你传递一个负数时,x的值是“-”,不能转换成整数。这就是错误。依我所见,我认为你是在存储列表中数字的绝对值。这可以通过检查字符是否为“-”来完成,在这里您可以给一个
pass
在这个迭代中什么都不做。你知道吗相关问题 更多 >
编程相关推荐