python - 无法在 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]) 或任何索引号返回整数,但输出仍然是一个字符串。
解决方案
你必须这样做:
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)
.
推荐阅读
- java - 将专色(直接色调)添加到 PDF
- c# - 反序列化 Avro Spark
- python-3.x - 如何使用 Pandas groupby() 将具有逗号分隔的列项的字符串聚合到列表中?
- html - Flexbox - 导航栏上菜单项之间的间隙不一致
- python - Azure API 权限修复
- react-redux - 在 React Redux 中拖放一行后更新 react-table 值
- c - 将指针传递给另一个函数时,带有数组的 printf 的奇怪行为
- c# - 以更好的方式在.net core web api中上传图像
- sql-server - 基于 Rowversion 的 SSIS ETL Pattern 偶尔会丢失行,如何纠正?
- java - 使用 Wiremock 进行 Azure 触发函数集成测试