首页 > 解决方案 > 无法在 python 列表中将 str 转换为 int

问题描述

我想将列表中的元素转换为整数(字符串到整数)找不到我的错误。我只是得到字符串。其他一些帖子答案建议使用列表推导,但是,作为一个新手,我更喜欢在学习列表推导之前了解为什么这种更基本的方法不起作用。

谢谢你的帮助。

(使用 Python 3)

我试过了:

while True:
    userInput=input("Write space-separated numbers:  ")
    listNumbers=userInput.split()
    for i in listNumbers:
        int(i)
    print(type(listNumbers[0]))

也试过:

for i in listNumbers:
    i=int(i)

我希望 type(listNumbers[0]) 或任何索引号返回整数,但输出仍然是一个字符串。

标签: pythonlistcasting

解决方案


你必须这样做:

for i in range(0, len(listNumbers)):
    listNumbers[i] = int(listNumbers[i])

或者:

for idx, val in enumerate(listNumbers):
    listNumbers[idx] = value

这可以使用以下方法缩短:

listNumbers = [int(x) for x in listNumbers]

做的时候:

for i in listNumbers):
    i = int(i)

i只是对元素的引用,因此您无法更改列表的原始值。

做的时候:

for i in listNumbers:
    int(i)

您不存储int(i).


推荐阅读