Converting list items from string to int(Python)
本问题已经有最佳答案,请猛点这里访问。
我有一个清单:
1 | Student_Grades = ['56', '49', '63'] |
我想把每个条目都转换成整数,这样我就可以计算出平均值。
以下是我的转换代码:
1 2 | for i in Student_Grades: Student_Grades = [int(i)] |
号
我一直在出错
1 | invalid literal for int() with base 10: '56,' |
我不知道该怎么办。
这是我获得学生成绩的全部代码选择_file=str(input("请输入要读取的文件的确切名称(包括文件扩展名):")
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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"
对列表中的每个项目应用
1 2 3 4 | >>> 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] |
关于python 2和3中
在python 2.x中,
1 | >>> res = map(int, StudentGrades) |
。
但在python 3.x中,
1 | >>> res = list(map(int, StudentGrades)) |
后一种方法在两个版本的python中都很好地工作。
你应该这样做:
1 2 | for i in range(len(Student_Grades)): Student_Grades[i] = int(Student_Grades[i]) |
1 2 3 4 5 6 | In [7]: Student_Grades = ['56', '49', '63'] new_list = [int(i) for i in Student_Grades] print(new_list) [56, 49, 63] |
号