Python Forum
ValueError: invalid literal for int() with base 10: '[2,4,7,8,19]'
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
ValueError: invalid literal for int() with base 10: '[2,4,7,8,19]'
#1
Hello friends,given program show given error. Please give me solution.
i want '[2,4,7,8,19]' as list of element but it is string.
ValueError: invalid literal for int() with base 10: '[2,4,7,8,19]'[/python]

def binarySearch (arr, first, last, element):
    if last < 1:
        return -1
    else: 
        mid = first+ (last-1)//2
        if arr[mid] == element:
            return mid
        elif arr[mid] >element:
            return binarySearch(arr, first, mid-1, element)
        else:
            return binarySearch(arr, mid+1, last, element)
 
arr=int(input("Enter list of element:"))
print(len(arr))
#Enter list of element:[2,5,7,9,10]
element=int(input("Enter list of element:"))
print(element)
#arr = [ 2, 3, 4, 10, 40 ]
#print(len(arr))
#element = 10
result = binarySearch(arr, 0, len(arr)-1, element)
if result != -1:
    print("Element is present at index %d" % result)
else:
    print("Element is not present in array")

Output:    
Enter list of element:[2,4,7,8,19]
Traceback (most recent call last):
  File "C:\Python 3.6\program\binary1.py", line 13, in <module>
    arr=int(input("Enter list of element:"))
ValueError: invalid literal for int() with base 10: '[2,4,7,8,19]'
Reply
#2
if broken down, your code is trying to convert a string with non numeric characters
>>> arr = input("Enter list of element:")
>>> arr
'2,4,7,8,19'
>>> int(arr)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '2,4,7,8,19'
>>> # correct as follows
...
>>> arr = arr.split(',')
>>> arr
['2', '4', '7', '8', '19']
>>>newarr =
>>>for element in arr:
...    newarr.append(int(element))
...
>>>print(newarr)
[2, 4, 7, 8, 19]
>>>print(newarr[3])
8
so i n a script, what you need to do is:

try:
    arr = input("Enter list of elements: ")
    print(arr)
    arr = arr.split(',')
    print(arr)
    newarr = []
    for element in arr:
        newarr.append(int(element))
    print(newarr)
except ValueError:
    print('Try again: Your input: {} contains non-numeric data'.format(arr))
Output:
Enter list of elements: 2,3,4,5,6 2,3,4,5,6 ['2', '3', '4', '5', '6'] [2, 3, 4, 5, 6]
Process finished with exit code 0
this can be simplified into a list comprehension:
Reply
#3
As Larz60+ told, you can use .split(",") to split your array and then convert each element to int. Another way is to do it in one line.

(Sep-01-2017, 12:25 PM)Larz60+ Wrote: this can be simplified into a list comprehension:

>>> arr = [int(x) for x in input("Enter list of element:").split(',')]
Enter list of element:2,4,7,8,19
>>> print(arr)
[2, 4, 7, 8, 19]
Reply
#4
I also like simplifying things!

>>> arr = list(map(int, input("List of numbers: ").split(",")))
List of numbers: 3,4,52,3,2,1
>>> arr
[3, 4, 52, 3, 2, 1]
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  ValueError: invalid literal for int() with base 10: omega_elite 5 5,679 Dec-30-2020, 06:11 AM
Last Post: delonbest
  invalid literal for int() with base 10: '# NRECS: 1096\n' Baloch 8 4,459 May-24-2020, 02:08 AM
Last Post: Larz60+
  invalid literal for int() with base 10: '' mrsenorchuck 5 5,332 Apr-29-2020, 05:48 AM
Last Post: markfilan
  ValueError: invalid literal for int() with base 10: '\n' srisrinu 9 5,583 Apr-13-2020, 01:30 PM
Last Post: ibreeden
  zlib decompress error: invalid code lengths set / invalid block type DreamingInsanity 0 6,744 Mar-29-2020, 12:44 PM
Last Post: DreamingInsanity
  input-ValueError: invalid literal for int() jacklee26 2 2,511 Feb-21-2020, 01:27 PM
Last Post: ndc85430
  ValueError: invalid literal for int() with base 10: '0.5' emmapaw24 2 3,674 Feb-16-2020, 07:24 PM
Last Post: emmapaw24
  ValueError: invalid literal for int() with base 10: '' Jay123 7 7,219 Aug-05-2019, 02:43 PM
Last Post: Jay123
  ValueError: invalid rectstyle object fen1c5 1 5,620 Jun-05-2019, 02:51 PM
Last Post: heiner55
  ValueError: invalid literal for int() with base 10: '' ivinjjunior 6 9,069 Apr-20-2019, 05:37 PM
Last Post: keames

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020