Python词典打印

时间:2017-08-18 21:46:52

标签: python dictionary

我有这本字典,但是我无法打印它,有人能告诉我是否有错误吗?

groseries = {
    'fruits':[{
        'apples':['7'],
        'bananas':['4'],
        'lemmons':['7']
    }],
    'vegestables':[{
        'tomatoes':['3'], 
        'carrots':['9'], 
        'onions':['6']
    }],
    'cereals':[{
        'wheat':['11'],
        'granola':['7'],
        'kornflakes':['9']
    }]
}

print (groseries['cereals'][2])

4 个答案:

答案 0 :(得分:1)

groseries['cereals']只有一个元素。因此,使用索引2会抛出IndexError异常。

因此,正确的用法是使用索引0和密钥' kornflakes':

print(groseries['cereals'][0]['kornflakes'])

答案 1 :(得分:0)

您需要groseries['cereals'][0]['kornflakes']

它是groseries['cereals']内的词典列表(只包含一个字典)。

答案 2 :(得分:0)

也许您打算像这样格式化代码?:

groceries = {
    'fruits': {
        'apples':7,
        'bananas':4,
        'lemons':7
    },
    'vegetables': {
        'tomatoes':3,
        'carrots':9,
        'onions':6
    },
    'cereals': {
        'wheat':11,
        'granola':7,
        'cornflakes':9
    }
}

那么你可以打印出你喜欢的苹果数量:

print (groceries['fruits']['apples'])

或玉米片:

print (groceries['cereals']['cornflakes'])

在一个微不足道的说明中,番茄不应该在水果中吗? :P

答案 3 :(得分:0)

将您的groseries字典更改为

groseries = {
    'fruits': {
        'apples': 7,
        'bananas': 4,
        'lemmons': 7
     },
     'vegestables': {
         'tomatoes': 3, 
         'carrots': 9, 
         'onions': 6
     },
     'cereals': {
         'wheat': 11,
         'granola': 7,
         'kornflakes': 9
     }
}

(没有lists - 因为你的所有lists只有1项目 - 撇号中没有数字,PEP 8 Style Guide's格式化 - 而且你的生活会更容易。< / p>

是的,那么您可以打印您最喜欢的kornflakes谷物的数量(或价格?),就像

一样简单
print(groseries['cereals']['kornflakes'])