我有一些代码将数字与输入()的空格分开。我试着在它上面调用.split(),但由于某种原因它将[56 78 90 1 2 3]变成了[78.0,90.0,1.0,2.0]。感谢
def insert(self, lst):
for x in lst.split():
try:
self.theList.append(float(x))
except:
3+4
答案 0 :(得分:1)
“某些原因”是您正在调用float
,将值转换为float
类型。
答案 1 :(得分:0)
这样做是因为你使用的是float(x)。如果所有数字都是整数,请使用整数值。否则,使用float函数时可能会产生额外的小数位。
答案 2 :(得分:0)
您从字符串lst = "[56 78 90 1 2 3]"
开始。它由分配给['[56', '78', '90', '1', '2', '3]']
的空格分开。注意第一个和最后一个元素中的括号!
然后,您将每个元素解释为在float('[56')
和float('3]')
上失败的浮动,导致程序进入您小心选择不使用的except
案例。
以下是如何将整数字符串转换为可以迭代的正确列表,以便您可以将数字重新解释为浮点数,无论出于何种原因:
import ast
ast.literal_eval(lst.replace(" ", ", ")
为什么你要将一堆整数作为字符串传递?你能在代码中显示"[56 78 90 1 2 3]"
出现的位置吗?