将列表项从字符串转换为整数(Python)

8 投票
3 回答
90409 浏览
提问于 2025-04-18 04:49

我有一个列表:

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])

撰写回答