首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提取python字典信息

如何提取python字典信息
EN

Stack Overflow用户
提问于 2018-04-04 01:31:25
回答 1查看 1.4K关注 0票数 0

我有以下代码:

代码语言:javascript
复制
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",
}

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

代码语言:javascript
复制
>>> car(382)
'Car: Onix - Model 2018!'

然而,我想以这样的方式提取信息:

代码语言:javascript
复制
cars = {'Chevrolet':{'Onix':'Model 2018',
                     'Selta':'Model 2017'},
        'Ford':{'Fusion':'Model 2009',
                      'Ranger':'Model 2015'}}

我想以这样的方式提取信息:

代码语言:javascript
复制
>> car(Onix)
'Car: Onix - Model 2018!'

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-04 02:03:57

具有字符串键的字典是作为哈希列表存储的。所以你的字典把Onix存储在Chevrolet下面的地址里。所以我们可以访问它

代码语言:javascript
复制
cars['Chevrolet']

{“洋葱”:“2018年模式”,“Selta”:“2017年模式”}

代码语言:javascript
复制
cars['Chevrolet']['Onix']

“2008型”

如果你不知道什么品牌制造一个特定的模式。您可以使用列表理解找到它,如

代码语言:javascript
复制
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变量,它就会发现在哪个品牌下可以找到模型。

然后您可以创建一个小的实用程序函数。

代码语言:javascript
复制
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'))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49641382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档