如何提取python字典信息

2024-04-18 07:42:03 发布

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

我有以下代码:

def car(userid):
    return "Car: %s!" % car_models.get(userid, 'This car model does not exist in the database.')


car_models = {
    382: "Onix - Model 2018",
    950: "HB20 - Model 2018",
    590: "Citroen - Model 2016",
}

我可以通过以下方式提取信息:

^{pr2}$

不过,我想用这种方式提取信息:

cars = {'Chevrolet':{'Onix':'Model 2018',
                     'Selta':'Model 2017'},
        'Ford':{'Fusion':'Model 2009',
                      'Ranger':'Model 2015'}}

我想用这种方式提取信息:

>> car(Onix)
'Car: Onix - Model 2018!'

我承认我试过很多东西,但我打不中


Tags: 代码信息getmodelreturnmodelsdef方式
0条回答
网友
1楼 · 发布于 2024-04-18 07:42:03

带有字符串键的字典是以哈希表的形式存储的。所以你的字典在雪佛兰下面的地址中存储了Onix。所以我们可以用

cars['Chevrolet']

{'Onix': 'Model 2018', 'Selta': 'Model 2017'}

^{pr2}$

'Model 2018'


如果你不知道什么牌子的特定型号。你可以用列表理解

cars = {'Chevrolet':{'Onix':'Model 2018',
                     'Selta':'Model 2017'},
        'Ford':{'Fusion':'Model 2009',
                      'Ranger':'Model 2015'}}

model = 'Selta'
brand = [car for car in cars for m in cars[car] if m == model][0]

print('Car: ' + model + ' - ' + cars[brand][model])

您只需更改model变量,它将发现在哪个品牌下可以找到模型。在


然后你可以做一个小的效用函数

def getInfo(cars, model):
    brand = [car for car in cars for m in cars[car] if m == model][0]
    return 'Car: ' + model + ' - ' + cars[brand][model]

cars = {'Chevrolet':{'Onix':'Model 2018',
                     'Selta':'Model 2017'},
        'Ford':{'Fusion':'Model 2009',
                      'Ranger':'Model 2015'}}

print(getInfo(cars, 'Ranger'))

相关问题 更多 >