更多是我在上一个问题中使用的同一Python程序的延续。我有14个清单。 10个列表包含汽车的品牌和型号,其次是每辆汽车的价值,然后是每个品牌/型号的汽车数量。 3个列表包含前十个的附加值;一个严格包含品牌/型号,下一个严格包含每个汽车的整数值,最后一个严格包含每个品牌/型号的数量。第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上研究此类问题,但似乎找不到任何相关问题。不知道这是由于我在搜索中没有正确解释它,还是由于我没有在正确的位置查看,我不知道。无论如何,我们将不胜感激,因为我不知道该怎么做。
答案 0 :(得分:2)
您可以使用名为let posts = Post.allPosts
的Python库,这将使您的任务更加轻松。
您可以尝试以下方法吗?
pandas
如果要获取第一个值,可以执行以下操作:
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]))
答案 1 :(得分:2)
通过以下一项更改功能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))
答案 2 :(得分:1)
您可以在此处使用max
,使用第二个元素MRSP
x[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