如何将用户的输入数字与导入文件中的数据进行比较?

时间:2015-12-22 23:05:46

标签: file input compare python-3.5

我正在导入一个包含数据的文件并将其转换为矩阵形式,我要求用户输入一个数字,然后将其与数据中的数字进行比较并打印多少数字大于输入数。但我继续得到以下错误:

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)

1 个答案:

答案 0 :(得分:1)

您的代码假设它只处理一个list个数字。您实际上拥有的是listlist个数字。您的第二个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()])

这将为您提供一个像您的代码所期望的数字的平面列表。