Para su pregunta específica, sólo puede utilizar este:
>>> d={'fruit':
{'orange': 'orange', 'apple': 'red', 'banana': 'yellow'},
'vegetables':
{'lettuce': 'green', 'beet': 'red', 'pumpkin': 'orange'}}
>>> len(d)
2 # that is 1 reference for 'fruit' and 1 for 'vegetables'
>>> len(d['fruit'])
3 # 3 fruits listed...
>>> len(d['vegetables'])
3 # you thought of three of those...
>>> len(d['fruit'])+len(d['vegetables'])
6
Aunque puede utilizar las distintas herramientas que Python tiene que contar con los elementos en este diccionario trivial, lo más interesante y productivo es pensar en el estructura de los datos en primer lugar.
Las estructuras de datos básicas de Python son lists, sets, tuples, and dictionaries. Cualquiera de estas estructuras de datos puede 'contener', por referencia, cualquier versión anidada de sí mismo o de otras estructuras de datos.
Esta lista es una nested list:
>>> l = [1, [2, 3, [4]], [5, 6]]
>>> len(l)
3
>>> l[0]
1
>>> l[1]
[2, 3, [4]]
>>> l[2]
[5, 6]
El primer elemento es el número entero 1. Elementos 1 y 2 son listas mismos. Lo mismo puede ser cierto de cualquier otra estructura de datos básica de Python. Estos son recursive data structures.Puede imprimir con pprint
Si organiza su diccionario un poco mejor, es más fácil de extraer información de ella con las herramientas más simples de Python:
>>> color='color'
>>> family='family'
>>> sensation='sensation'
>>> good_things={
'fruit':
{
'orange':
{
color: 'orange',
family: 'citrus',
sensation: 'juicy'
},
'apple':
{
color: ['red','green','yellow'],
family:'Rosaceae',
'sensation': 'woody'
},
'banana':
{
color: ['yellow', 'green'],
family: 'musa',
sensation: 'sweet'
}
},
'vegatables':
{
'beets':
{
color: ['red', 'yellow'],
family: 'Chenopodiaceae',
sensation: 'sweet'
},
'broccoli':
{
color: 'green',
family: 'kale',
sensation: 'The butter you put on it',
}
}
}
Ahora las consultas en que los datos tienen más sentido:
>>> len(good_things)
2 # 2 groups: fruits and vegetables
>>> len(good_things['fruit'])
3 # three fruits cataloged
>>> len(good_things['vegetables'])
2 # I can only think of two vegetables...
>>> print good_things['fruit']['apple']
{'color': ['red', 'green', 'yellow'], 'sensation': 'woody', 'family': 'Rosaceae'}
>>> len(good_things['fruit']['apple']['color'])
3 # apples have 3 colors
Lo que está mal con 'len (food_colors [ 'fruta']) + len (food_colors [ 'verduras'])'? –