将字符串列表转换为int时,为什么会出现值错误

时间:2017-06-20 22:53:59

标签: python python-2.7 python-3.x

def answer(l):
# your code here
   l1=[]
   l2=[]
   l0=[]
   l.sort(reverse=True)
   for i in l:
       if i%3==0:
         l0.append(i)
       elif i%3==1:
         l1.append(i)
       elif i%3==2:
          l2.append(i)
   if(sum(l)%3==0):
      return int(''.join(str(e) for e in l))
   elif sum(l)%3==1:
      if l1!=[]:
         l1.pop()
      else:
          if len(l2)>=2:
              l2.pop()
              l2.pop()
          else:
              return 0
   elif sum(l)%3==2:
       if l2!=[]:
         l2.pop()
       else:
          if len(l1)>=2:
              l1.pop()
              l1.pop()
          else:
              return 0  
   l1.extend(l2)
   l1.extend(l0)

   l1.sort(reverse=True)
   return int(''.join(str(e) for e in l1))

l1列表需要转换为字符串然后转换为int,但是我得到了值错误。我能知道为什么吗? 输入:(int list)[3,1,4,1] 输出:(int)4331

1 个答案:

答案 0 :(得分:3)

l1的某些元素的字符串表示形式与^[0-9]+$不匹配。

这就是为什么你得到ValueError