将列表项从字符串转换为整数(Python)
我有一个列表:
Student_Grades = ['56', '49', '63']
我想把列表里的每个条目都转换成整数,这样我就可以计算平均值了。
这是我用来转换的代码:
for i in Student_Grades:
Student_Grades = [int(i)]
但是我总是遇到这个错误:
invalid literal for int() with base 10: '56,'
我不知道该怎么办。
这是我获取学生成绩的完整代码:
Choose_File = str(input("请输入要读取的文件的确切名称(包括文件扩展名):"))
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'
3 个回答
8
In [7]:
Student_Grades = ['56', '49', '63']
new_list = [int(i) for i in Student_Grades]
print(new_list)
[56, 49, 63]
这段代码是用来做某些操作的,但具体的功能需要根据上下文来理解。通常情况下,代码块里会包含一些指令或者逻辑,用于实现特定的任务。
如果你看到类似的代码,首先要明白它是由一系列的命令组成的,这些命令会按照一定的顺序执行。每一行代码可能代表一个操作,比如计算、判断条件、或者处理数据。
在学习编程时,理解这些代码块的结构和功能是非常重要的。你可以尝试逐行分析,看看每一行在做什么,慢慢就能掌握它们的用法。
记住,编程就像是给计算机下指令,代码块就是这些指令的集合。多练习,多尝试,你会越来越熟悉这些内容的。
21
对列表中的每个项目应用 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]
关于 Python 2 和 3 中 map
的区别说明
在 Python 2.x 中,map
直接返回一个列表,所以你可以直接使用
>>> res = map(int, StudentGrades)
但是在 Python 3.x 中,map
返回的是一个迭代器,所以要得到真正的列表,必须用 list
来包裹一下:
>>> res = list(map(int, StudentGrades))
这种方法在 Python 的两个版本中都能很好地工作
12
你应该这样做:
for i in range(len(Student_Grades)):
Student_Grades[i] = int(Student_Grades[i])