gpt4 book ai didi

python - 从字典列表值中获取值

转载 作者:行者123 更新时间:2023-12-01 00:27:19 25 4
gpt4 key购买 nike

我编写了一个代码,您可以在其中创建带有车牌和有关它们的信息的自定义车辆,我使用字典来跟踪它们,并使用列表来跟踪每辆车所包含的内容。因此字典中的键成为车牌,汽车的属性列表成为值。现在我需要从列表中单独打印每个值。

我尝试调用列表中的值,如下所示,值后面带有 []但这似乎不起作用。除了之前之外,While 循环现在正在运行。

carList = {"ABC 123": ["Mustang GT", 1969, "Black"]}
car = str(input("What car would you like to withdraw? Write the license plate")).upper()

car = str(input("What car would you like to withdraw? Write the license plate: ")).upper()

while (car in carList.keys()) == 0 and car != "0":
car = str(input("That car doesen't exist. Write a new one or press 0: ")).upper()

choice = str(input("You wish to withdraw {}\nModel: {}\nYear: {}\nColour: {}".format(car, carList[car[0]], carList[car[1]], carList[car[2]])))

我刚刚得到一个无效的语法,我想打印每辆车的值。

最佳答案

这里发生了很多不太正确的事情。就我个人而言,我会稍微不同地组织这个问题。

首先,您不需要在 input() 的结果中调用 str()——它已经是一个字符串了。

其次,在 while 循环中调用 .upper 时缺少括号 - 它应该是 .upper()。 while 循环的条件也不正确。 car in carList 确实返回一个 bool 值(TrueFalse),Python 将允许将它们与 1 进行比较,并且0,所以这些部分还可以,但不是真正惯用的编写方式。您通常会说car not in carList并删除== 0部分。此外,car != 0 始终为 true,因为如果用户在提示符下键入 0,您实际上会返回字符串 '0' 等于整数0

最后,您尝试在 carList 中提取特定汽车数据的方式是错误的。这是片段:

carList[car[0], carList[car[1], carList[car[2]]

我真的无法说出这里的意图是什么,但这绝对是一个语法问题。您至少缺少一个结束 ] ,并且根据您的意思,您可能没有足够的参数。看来您可能想写:

carList[car[0]], carList[car[1]], carList[car[2]]

在本例中,您尝试通过车牌的一个字符来查找车辆。替换,你得到:

carList['A'], carList['B'], carList['C']

很明显这不是您想要的。相反,您想要获取 car 的列表。您可以通过使用 car 的整个值来获得:

carList[car]

这将为您提供整个列表。现在您需要各个元素,因此您可以编写:

carList[car][0], carList[car][1], carList[car][2]

更好的方法是简单地获取列表并将其存储在变量中,然后使用新变量来获取数据元素:

data = carList[car]
data[0], data[1], data[2]

最后,我可能会写一些更接近于此的内容:

carList = {"ABC 123": ["Mustang GT", 1969, "Black"]}

while True:
car = input("What car would you like to withdraw? Write the license plate: ").upper()

if car == '0':
break

if car not in carList:
print("That car doesn't exist. Press 0 to abort or write a new license plate.")
continue

data = carList[car]

choice = input("You wish to withdraw {}\nModel: {}\nYear: {}\nColour: {}\n: ".format(
car, data[0], data[1], data[2]))

# ...

更新:根据您下面的评论,这可能会有所帮助:

class Car:
def __init__(self, model, year, color):
self.model = model
self.year = year
self.color = color

carList = {"ABC 123": Car("Mustang GT", 1969, "Black")}

# ...

choice = input("You wish to withdraw {}\nModel: {}\nYear: {}\nColour: {}\n: ".format(
car, data.model, data.year, data.color))

关于python - 从字典列表值中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58462313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com