Stephan202 a le droit de répondre, utilisez defaultdict
. Mais si vous voulez quelque chose avec l'interface de C++ STL multimap et bien plus de performances, vous pouvez faire ceci:
multimap = []
multimap.append( (3,'a') )
multimap.append( (2,'x') )
multimap.append( (3,'b') )
multimap.sort()
Maintenant, quand vous itérer multimap
, vous obtiendrez des paires comme vous le feriez dans un std::multimap
. Malheureusement, cela signifie que votre code de boucle va commencer à rechercher aussi laid que C++.
def multimap_iter(multimap,minkey,maxkey=None):
maxkey = minkey if (maxkey is None) else maxkey
for k,v in multimap:
if k<minkey: continue
if k>maxkey: break
yield k,v
# this will print 'a','b'
for k,v in multimap_iter(multimap,3,3):
print v
En résumé, defaultdict
est vraiment cool et tire parti de la puissance de python et vous devez l'utiliser.