猿问

python:如何找到其中最大数字的行?

如何在包含字符串和数字的行文件中找到最大数字的行


def topSpeed(cars): 


y = raw_input("car type:")

with open("cars","r") as f:

    for l in f.readlines():

        list = []

        p = l.strip().split("|")

        type = p[1]

        max_speed = p[7]

        if y == type:

            list.append(l)

            a = 0

            for i in list:

                p = i.strip().split("|")

                max_speed = p[7]                    

                if max_speed > a:

                    a = max_speed

                    print(i)

                    pass 

                else:

                    print("...")    


        else:

            print("no cars of that type")

我试过了,但它打印了所有输入类型的汽车


和汽车清单是:


a1|bmw|a|3.5|2.6|1.6|2018|150|3|5|x

a2|audi|a|2.50|1.60|4.50|2017|220|3|2|y

a3|audi|b|2.30|1.80|5.00|2011|180|4|4|x

a4|bmw|b|duz|vis|sir|god|230|3|5|y


月关宝盒
浏览 193回答 2
2回答

LEATH

你的问题是循环:for i in list:    p = i.strip().split("|")    max_speed = p[7]                        if max_speed > a:        a = max_speed        print(i)         pass     else:        print("...")这将在每次 max_speed > a 时打印出“i”,因此如果您的最大速度按升序排列,它将打印出每辆车。您需要做的是以最大速度保存汽车,然后在最后打印出来。max_speed_car = ''for i in list:    p = i.strip().split("|")    max_speed = p[7]                        if max_speed > a:        a = max_speed        max_speed_car = i        pass     else:        print("...")print(max_speed_car)应该这样做。这是在我的计算机上运行良好的完整代码:(我正在运行 python 3.6)def topSpeed(cars):    y = input("car type:")    with open(r"\cars.txt","r") as f:            for l in f.readlines():        list = []        p = l.strip().split("|")        type = p[1]        max_speed = p[7]        if y == type:            list.append(l)    a = 0    max_speed_car = ''    for i in list:        p = i.strip().split("|")        max_speed = int(p[7])                            if (max_speed > a):            a = max_speed            max_speed_car = i        else:            print("...")    print(max_speed_car)
随时随地看视频慕课网APP

相关分类

Python
我要回答