将变量中的值与Python中的字典进行比较

2024-09-28 20:15:25 发布

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

我有一本Python字典,上面有汽车的名称、颜色和汽车数量,以及目前的库存数量(以下是一些示例):

cardict = {
    'Ferrari': {'Colour': 'Red', 'Carcount': 0},
    'Lambo': {'Colour': 'Yellow', 'Carcount': 0},
    'Mustang': {'Colour': 'Black', 'Carcont': 0},
}

我有一个名为stock的变量,它存储许多不同车型的名称。如果在变量中找到像'Ferrari'这样的汽车模型,我希望它将变量与字典进行比较,如果在变量中找到'Ferrari',比如说3次,我希望字典中的计数从0更改为3,我正在寻找一种方法来实现这一点

更新编辑:

汽车的名称来自一个包含数百辆不同汽车的文本文件,我使用“with open”打开文本文件,然后如果car.starts使用“Ferrari”将其转换为一个变量。我使用int(car[15:])来去掉我不需要的其他文本,只显示放入变量“stock”中的汽车名称

另外,当我打印到控制台时,会打印“count”值:“{Carcount':0}”

for c in cardict: 
    print(cardict[c]) 

输出:

 '{'Carcount': 0}'

是否有一种方法可以将值“0”打印到控制台,而不是打印{count':}部分

例如:

0
2

Tags: 方法名称数量字典颜色countstock库存
3条回答
stock = ["Ferrari", "Lambo", "Ferrari"]

for carname in cardict.keys():
    cardict[carname]['Carcount'] = stock.count(carname)

编辑:我想我现在理解你的编辑了。变量stock包含一个汽车名称,而不是汽车名称列表。在这种情况下,以下是我的更新代码:

stock = "Ferrari"
cardict[stock]['Carcount'] += 1

根据您关于项目存储在变量(即列表)中的评论,以下是一种可能的解决方案:

# An example of a stock list you might have
carlist = ["Ferrari", "Ferrari", "Ferrari", "Lambo", "Lambo", "Mustang"]

for car in carlist:
    if car in cardict:
        cardict[car]['Carcount'] += 1
print(cardict)

您可以使用字典理解:

stock = ['ferrari', 'ford', 'ferrari', 'mustang', 'lambo', 'mustang', 'ferrari', 'ford', 'ford']

cardict = {m: {k: v if k=='Colour' else stock.count(m.lower()) for k, v in n.items()} for m, n in cardict.items()}

收益率:

{'Ferrari': {'Colour': 'Red', 'Carcount': 3}, 'Lambo': {'Colour': 'Yellow', 'Carcount': 1}, 'Mustang': {'Colour': 'Black', 'Carcont': 2}}

相关问题 更多 >