从列表中查找最高整数和相应的字符串

2024-06-01 05:25:13 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我在上一个问题中使用的同一个python程序的继续。我有14张单子。10个列表包含一辆汽车的品牌和型号,然后是每辆汽车的价值,然后是每种品牌/型号的汽车数量。3个列表包含前10个列表中的附加值;一个列表严格包含品牌/型号,下一个列表严格包含每辆车的整数值,最后一个列表严格包含每个品牌/型号的数量。第14个列表包含前10个列表作为一个主列表。你知道吗

我试图找到一辆车的最高整数值,然后找到该车对应的字符串名,并将两者打印到屏幕上。我有最高的整数值,并将其格式化为货币打印,但我不知道如何找到与该整数值对应的汽车名称。你知道吗

我将为上下文添加示例。你知道吗

我的当前代码:

def getList(all):
    x = 0
    for x in range(0, len(all)):
        list0.append(all[x][0])
        list1.append(all[x][1])
        list2.append(all[x][2])
    print()
    print("Vehicle Inventory by Type")
    print("Inventory       Make/Model")
    for x in range(0, len(all)):
        print("%9d       %-1s" % (list2[x], list0[x]))
    return all, list0, list1, list2


def getHighest(all, list0, list1):
    print("Highest MRSP:")
    i = max(list1)
    if i == (all[9][1]):
        print("yes")
    print('${:,.2f}'.format(i))


list0 = []
list1 = []
list2 = []

car1 = ["Chevy Bolt EV", 37495, 2]
car2 = ["Kia Niro", 24485, 23]
car3 = ["VW e-Golf", 32790, 12]
car4 = ["Hyundai Kona", 37495, 3]
car5 = ["Honda Insight", 23725, 4]
car6 = ["Chevrolet Volt", 34395, 14]
car7 = ["Hyundai Ioniq", 23285, 5]
car8 = ["Tesla Model 3", 45200, 1]
car9 = ["Audi e-tron", 75795, 2]
car10 = ["Toyota Prius", 24405, 12]

all = (car1, car2, car3, car4, car5, car6, car7, car8, car9, car10)

getList(all)
print()
getHighest(all, list0, list1)

函数“getHighest”中的“if”语句是我试图找出它的逻辑,但是我知道我弄错了,我不知道如何得到我想要的。你知道吗

忘记添加函数“getList”的结果:

Vehicle Inventory by Type
Inventory       Make/Model
        2       Chevy Bolt EV
       23       Kia Niro
       12       VW e-Golf
        3       Hyundai Kona
        4       Honda Insight
       14       Chevrolet Volt
        5       Hyundai Ioniq
        1       Tesla Model 3
        2       Audi e-tron
       12       Toyota Prius

举个例子,奥迪e-tron的值在这个特定的列表系列中是最高的,整数值是75795,所以我想同时抓取值和名称并显示在屏幕上。你知道吗

我想举个例子:

Highest MSRP:
Audi e-tron at $75,795.00

我现在举的例子是:

Highest MSRP:
$75,795.00

我试图在Google上研究这类问题,但似乎找不到任何相关的东西。我不知道是因为我在搜索中没有正确地解释,还是因为我没有在正确的地方寻找。无论如何,任何帮助都将非常感激,因为我不知道我应该做什么。你知道吗


Tags: 列表model整数all汽车inventoryprint品牌
3条回答

您可以使用名为pandas的Python库,这将使您的任务更加简单。你知道吗

你能试一下吗

car1 = ["Chevy Bolt EV", 37495, 2]
car2 = ["Kia Niro", 24485, 23]
car3 = ["VW e-Golf", 32790, 12]
car4 = ["Hyundai Kona", 37495, 3]
car5 = ["Honda Insight", 23725, 4]
car6 = ["Chevrolet Volt", 34395, 14]
car7 = ["Hyundai Ioniq", 23285, 5]
car8 = ["Tesla Model 3", 45200, 1]
car9 = ["Audi e-tron", 75795, 2]
car10 = ["Toyota Prius", 24405, 12]

all_cars = [car1, car2, car3, car4, car5, car6, car7, car8, car9, car10]

import pandas as pd
df = pd.DataFrame(all_cars, columns=['car_name', 'price', 'qty'])
print(df.sort_values(by=['price'], ascending=[False]))

如果要获取第一个值,可以执行以下操作:

result = df.sort_values(by=['price'], ascending=[False]).iloc[0]
print(result['car_name'])
print("{:,}".format(result['price']))

您可以使用max这里,使用第二个元素MRSPx[1]来计算:

all_cars = [car1, car2, car3, car4, car5, car6, car7, car8, car9, car10]
max_car = max(all_cars , key=lambda x:x[1])
print('{} at ${:,.2f}'.format(*max_car))

输出:

Audi e-tron at $75,795.00

使用以下函数更改函数def getHighest()

def getHighest(all, list0, list1):
    print("Highest MRSP:")
    i = max(list1)
    c = [j for j, lst in enumerate(all) if i in lst][0]
    car = all[c][0]
    if i == (all[9][1]):
        print("yes")
    print('{} at ${:,.2f}'.format(car,i))

相关问题 更多 >