Python 类型错误:';浮动对象不可编辑';

Python 类型错误:';浮动对象不可编辑';,python,min,Python,Min,我有以下格式的数据日志文件 41, 3.68, 3.58, 3.71, 3.54, 3.68, 3.79 42, 3.69, 3.57, 3.73, 3.55, 3.67, 3.78 43, 3.68, 3.57, 3.73, 3.54, 3.68, 3.79 44, 3.68, 3.57, 3.73, 3.54, 3.67, 3.79 45, 3.68, 3.57, 3.73, 3.54, 3.67, 3.78 46, 3.68, 3.57, 3.73, 3.54, 3.67, 3.78 47

我有以下格式的数据日志文件

41, 3.68, 3.58, 3.71, 3.54, 3.68, 3.79
42, 3.69, 3.57, 3.73, 3.55, 3.67, 3.78
43, 3.68, 3.57, 3.73, 3.54, 3.68, 3.79
44, 3.68, 3.57, 3.73, 3.54, 3.67, 3.79
45, 3.68, 3.57, 3.73, 3.54, 3.67, 3.78
46, 3.68, 3.57, 3.73, 3.54, 3.67, 3.78
47, 3.68, 3.57, 3.73, 3.54, 3.67, 3.78
48, 3.68, 3.57, 3.73, 3.54, 3.67, 3.78
49, 3.68, 3.57, 3.73, 3.54, 3.67, 3.78
对于每一列,我试图找到最小值和相应的行号

但是对于下面的代码,
min()
函数给出了“float object not iterable”错误

with open("Datalog.txt", "r") as file:
    result = [[float(x) for x in line.split(",")] for line in file]
    for i in range (len(result[0])):
        for j in range (len(result)):
            print (result[j][i])
            print (min(result[0][i]))

min遍历参数中的列表/元组,并为您提供其中最小的项,但您为它提供了一个浮点,因此它尝试遍历浮点

绝对没有理由这么做,但如果你这么做,它不会崩溃:

print (min(result[0][i],))
从现在起,它不是一个浮点数,而是一个元组。它将只打印结果[0][i]的值

如果您希望得到每行中的最小值,则必须执行以下操作:

for i in range (len(result)):
    print (min(result[i]))
for j in range(len(result[0]))
    print ('minimum in column ' + str(j) + ':')
    print (min([result[i][j] for i in range(len(result))]))
如果您想要的是每列中的最小值(假设所有行的列数相同),则必须执行以下操作:

for i in range (len(result)):
    print (min(result[i]))
for j in range(len(result[0]))
    print ('minimum in column ' + str(j) + ':')
    print (min([result[i][j] for i in range(len(result))]))

其中j是列的索引

错误是因为

print (min(result[0][i]))
result[0][i]
是单个
float
对象,而不是您期望的列表

相反,请列出
min

for j in range (len(result)):
    print(result[j][0])
    print(min(result[j][1:]))

范围
[1://code>表示除第一个元素以外的所有元素。

请标记语言我是Stackoverflow新手&它说我需要至少1000个学分才能开始标记python 3.5。我正在尝试获取每列的最小值,上面的代码将给出每行的最小值。@crank2giri请尝试底部我编辑过的那一行。typeerror:“list”对象不能解释为整数,看起来像“范围内的J(结果[0]):”应该是“结果(0)中的J:”@crank2giri对不起。我想这已经解决了,谢谢你,伙计!知道了。现在可以了。再次感谢。:)