【发布时间】:2020-04-15 11:16:09
【问题描述】:
我正在尝试编写在这里运行这段代码,但我收到一个“str”对象不支持项目分配错误
for i in range(1, len(rows1)): # len(rows) is 90
for j in range(rowsize): # rowsize is 13
training_data[i][j] = float(training_data[i][j]) # 'str' object does not support item assignment
training_instances.append(training_data[i])
training_instances = [] 为空,training_data 是我从文件中解析的值列表。
training_data 的前 3 个元素如下所示:
['14.37 1.96 2.4 16.9 113.0 3.95 3.49 0.24 2.58 7.8 0.86 3.46 1481.0 1', '12.26 1.74 2.13 19.0 80.0 1.65 2.23 0.37 1.33 3.6 1.0 3.17 510.0 2', '11.82 1.47 1.99 20.8 86.0 1.98 1.6 0.3 1.53 1.95 0.95 3.33 495.0 2']
有人可以向我解释为什么我会收到此错误吗?我是 Python 的新手,我只是想把这个作业交上来。几小时前就该交作业了。
【问题讨论】:
-
training_data[i]似乎是一个字符串。您不能更改字符串中的单个字符,因为它是不可变的 ("123"[1] = "6")。您必须创建一个新的 (2D) 数组并在迭代原始数组时填充它。 -
你说得对,这就是问题所在!我现在已经创建了二维数组,现在一切正常。谢谢克里斯蒂法蒂!
-
您的整个数据是列表中的字符串,请参阅
training_data输出中的''。
标签: python string floating-point typeerror