Converting list items from string to int(Python)
87,619
Solution 1
You should do this:
for i in range(len(Student_Grades)):
Student_Grades[i] = int(Student_Grades[i])
Solution 2
Apply int
on each item in the list and return it as a list:
>>> StudentGrades = ['56', '49', '63']
>>> res = list(map(int, StudentGrades)) # this call works for Python 2.x as well as for 3.x
>>> print res
[56, 49, 63]
Note about map
differences in Python 2 and 3
In Python 2.x map
returns directly the list, so you may use
>>> res = map(int, StudentGrades)
but in Python 3.x map
returns an iterator, so to get real list, it must be wrapped into list
call:
>>> res = list(map(int, StudentGrades))
The later way works well in both version of Python
Solution 3
In [7]:
Student_Grades = ['56', '49', '63']
new_list = [int(i) for i in Student_Grades]
print(new_list)
[56, 49, 63]
Author by
swami_108
Updated on July 18, 2022Comments
-
swami_108 almost 2 years
I have a list:
Student_Grades = ['56', '49', '63']
and I want to convert each of the entries to integers so that I can calculate an average.
Here's my code for converting:
for i in Student_Grades: Student_Grades = [int(i)]
I keep getting the error
invalid literal for int() with base 10: '56,'
and I don't know what to do.
Here is my full code on how I got Student_Grades Choose_File = str(input("Please enter the exact name of the file to be read in (including file extention) : "))
with open(Choose_File, "r") as datafile: counter = 1 x = 1 Student_Grades = [] Read = datafile.readlines() info = Read[counter] Split_info = info.split() n = len(Split_info) while x < n: Student_Grades.append(Split_info[x]) x = x + 2
The textfile has the format 'MECN1234 56, MECN1357 49, MATH1111 63'
-
Benjamin Bannier about 10 yearsI think she wants to update the list.
-
Quintec about 10 years@BenjaminBannier Yes, I changed it.
-
swami_108 about 10 yearsThis returned <map object at 0x00000000032BD518> and I'm not quite sure what this means. Forgive me, I'm new to programming
-
askewchan about 10 years@user3576929, you must be using Python 3 and @Jan is using python 2. You can fix this by using
list(map(int, StudentGrades))
-
Jan Vlcinsky about 10 years@askewchan Thanks for your comment, I updated my answer to be Python 2 and 3 compatible