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

swa*_*108 8 python int list python-3.x

我有一个清单:

Student_Grades = ['56', '49', '63']
Run Code Online (Sandbox Code Playgroud)

我想将每个条目转换为整数,以便我可以计算平均值.

这是我的转换代码:

for i in Student_Grades:
    Student_Grades = [int(i)]
Run Code Online (Sandbox Code Playgroud)

我一直在收到错误

invalid literal for int() with base 10: '56,'
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么办

以下是关于我如何获得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
Run Code Online (Sandbox Code Playgroud)

文本文件的格式为'MECN1234 56,MECN1357 49,MATH1111 63'

Jan*_*sky 17

应用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]
Run Code Online (Sandbox Code Playgroud)

请注意mapPython 2和3中的差异

在Python 2.x中map直接返回列表,因此您可以使用

>>> res = map(int, StudentGrades)
Run Code Online (Sandbox Code Playgroud)

但是在Python 3.x中map返回一个迭代器,所以要获得真正的列表,它必须被包装到list调用中:

>>> res = list(map(int, StudentGrades))
Run Code Online (Sandbox Code Playgroud)

后两种方式适用于两种版本的Python


Qui*_*tec 9

你应该做这个:

for i in range(len(Student_Grades)):
    Student_Grades[i] = int(Student_Grades[i])
Run Code Online (Sandbox Code Playgroud)

  • 我想她想更新清单. (2认同)

xbb*_*xbb 8

In [7]:

Student_Grades = ['56', '49', '63']
new_list = [int(i) for i in Student_Grades]
print(new_list)
[56, 49, 63]
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

68229 次

最近记录:

6 年,6 月 前