Python - 使用创建的列表作为参数

Python - Using a created list as a parameter

当我 运行 我的代码时,它告诉我:类型错误:不可排序的类型:str() < float()。我不明白为什么它不允许我比较这两个数字。我正在使用的列表已定义,其中的数字已被重新定义为浮点数,所以我不确定还能做什么。有什么建议吗?

    def countGasGuzzlers(list1, list2):   
        total = 0
        CCount = 0
        HCount = 0
        for line in list1:
            if num < 22.0:
                total = total + 1
                CCount = CCount + 1
        for line in list2:
            if num < 27.0:
                total = total + 1
                Hcount = Hcount = 1
        print('City Gas Guzzlers: ',CCount)
        print('Highway Gas Guzzlers: ',HCount)
        print('Total Gas Guzzlers: ',total)

这是我的列表定义。我很确定它没问题,但也许这里也有一些错误?

     CityFile = open('F://SSC/Spring 2015/CSC 110/PythonCode/Chapter 8/HW 4/carModelData_city','r')
    for line in CityFile:
            CityData = CityFile.readlines()
            for num in CityData:
                numCityData = float(num)
                CityList = numCityData
    HwyFile = open('F://SSC/Spring 2015/CSC 110/PythonCode/Chapter 8/HW 4/carModelData_hwy','r')
    for line in HwyFile:
            HwyData = HwyFile.readlines()
            for num in HwyData:
                    numHwyData = float(num)
                    HwyList = numHwyData

我认为您错误地引用了 num 而不是 line,后者是 for 循环中的计数器变量,您需要使用 num 作为计数器变量,或在 if 条件中使用 line

def countGasGuzzlers(list1, list2):   
    total = 0
    CCount = 0
    HCount = 0
    for line in list1:
        if float(line) < 22.0:
            total = total + 1
            CCount = CCount + 1
    for line in list2:
        if float(line) < 27.0:
            total = total + 1
            Hcount = Hcount = 1
    print('City Gas Guzzlers: ',CCount)
    print('Highway Gas Guzzlers: ',HCount)
    print('Total Gas Guzzlers: ',total)

我看到的另一个问题是您创建列表的方式。问题是您将文件中的每个 num 转换为浮点数,然后将其直接存储在列表变量中,这会导致列表变量实际存储浮点值而不是列表,您需要将每个值附加到列表中,而不是执行 list = num

代码看起来像 -

CityFile = open('F://SSC/Spring 2015/CSC 110/PythonCode/Chapter 8/HW 4/carModelData_city','r')
for line in CityFile:
        CityData = CityFile.readlines()
        for num in CityData:
            numCityData = float(num)
            CityList.append(numCityData)
HwyFile = open('F://SSC/Spring 2015/CSC 110/PythonCode/Chapter 8/HW 4/carModelData_hwy','r')
for line in HwyFile:
        HwyData = HwyFile.readlines()
        for num in HwyData:
                numHwyData = float(num)
                HwyList.append(numHwyData)

还请确保在这段代码之前将 CityList 和 HwyList 初始化为列表。像下面-

CityList = []
HwyList = []