braver wrote: > ... > The real-life motivation for this is n-gram counting. Say you want to > maintain a hash for bigrams. For each two subsequent words a, b in a > text, you do > bigram_count[a][b] += 1
This application is easily handed with tuples as keys. bigrams = {} src = iter(source) lag = src.next() for current in src: bigrams[lag, current] = bigrams.get((lag, current), 0) + 1 lag = current But if you really want nested: bigrams = {} src = iter(source) lag = src.next() for current in src: count = bigrams.setdefault(lag, {}).get(current, 0) bigrams[lag][current] = count + 1 lag = current -Scott David Daniels [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list