我有一个清单:
Student_Grades = ['56', '49', '63']
我希望将每个条目转换为整数,以便我可以计算平均值。
这是我的转换代码:
for i in Student_Grades:
Student_Grades = [int(i)]
我一直收到错误
invalid literal for int() with base 10: '56,'
我不知道该怎么做。
以下是我如何获得Student_Grades的完整代码 Choose_File = str(输入(“请输入要读入的文件的确切名称(包括文件扩展名):”))
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
文本文件的格式为'MECN1234 56,MECN1357 49,MATH1111 63'
答案 0 :(得分:14)
对列表中的每个项目应用int
并将其作为列表返回:
>>> 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]
map
差异在Python 2.x map
中直接返回列表,因此您可以使用
>>> res = map(int, StudentGrades)
但是在Python 3.x map
中返回一个迭代器,所以要获得真正的列表,它必须包含在list
调用中:
>>> res = list(map(int, StudentGrades))
后两种方式在两个版本的Python中都很好用
答案 1 :(得分:9)
你应该这样做:
for i in range(len(Student_Grades)):
Student_Grades[i] = int(Student_Grades[i])
答案 2 :(得分:7)
In [7]:
Student_Grades = ['56', '49', '63']
new_list = [int(i) for i in Student_Grades]
print(new_list)
[56, 49, 63]