В чем разница между dict и collections.defaultdict?

Я проверял код Питера Норвига о том, как писать простые средства проверки орфографии. Вначале он использует этот код для вставки слов в словарь.

def train(features):
    model = collections.defaultdict(lambda: 1)
    for f in features:
        model[f] += 1
    return model

В чем разница между dict Python и тем, что здесь использовалось? Кроме того, для чего нужна лямбда ? Я проверил документацию по API здесь , и там сказано, что defaultdict фактически получен из dict, но как решить, какой из них использовать?

21
задан Legend 5 July 2011 в 23:02
поделиться