我正在导入一个包含数据的文件并将其转换为矩阵形式,我要求用户输入一个数字,然后将其与数据中的数字进行比较并打印多少数字大于输入数。但我继续得到以下错误:
Traceback (most recent call last):
File "C:/Users/Main User/Documents/University work/Engineering Programming and design/test.py", line 14, in <module>
if x > i:
TypeError: unorderable types: float() > list()
代码:
f = open('results.txt', 'r')
row=[]
for line in f:
row.append([float(x) for x in line.split()])
print('test_data')
print(row)
f.close
counter=0
x=float(input("Enter a number"))
for i in row:
if x > i:
counter=counter+1
print(counter)
答案 0 :(得分:1)
您的代码假设它只处理一个list
个数字。您实际上拥有的是list
个list
个数字。您的第二个for
循环需要嵌套。像这样:
for line in row:
for number in line:
if x > number:
counter = counter + 1
或者您需要使用extend
,而不是append
,如下所示:
for line in f:
row.extend([float(x) for x in line.split()])
这将为您提供一个像您的代码所期望的数字的平面列表。