Mélanger aléatoirement les éléments d'un dictionnaire sous python

Active 01 septembre 2014    /    Viewed 2507    /    Comments 0    /    Edit


Par défaut avec python les dictionnaires ne sont pas ordonnés. Cependant, il est intéressant de savoir comment mélanger aléatoirement les clés/valeurs d'un dictionnaire (pour pouvoir par exemple afficher les clés/valeurs du dictionnaire dans un ordre aléatoire). Exemple:

>>> import random
>>> import collections
>>> d = {'a':1,'b':2,'c':3,'d':4}
>>> d
{'a': 1, 'c': 3, 'b': 2, 'd': 4}
>>> items = d.items()
>>> type(d)
<type 'dict'>
>>> type(items)
<type 'list'>
>>> random.shuffle(items)
>>> items
[('c', 3), ('b', 2), ('d', 4), ('a', 1)]
>>> d = collections.OrderedDict(items)
>>> d
OrderedDict([('c', 3), ('b', 2), ('d', 4), ('a', 1)])
>>> for key, value in d.iteritems():
...     print key,value
... 
c 3
b 2
d 4
a 1

Recherches associées

Liens Site
OrderedDict Python doc
Reorder dictionary randomly stackoverflow
Get random key:value pairs from dictionary in python stackoverflow


Card image cap
profile-image
Daidalos

Hi, I am Ben.

I have developed this web site from scratch with Django to share with everyone my notes. If you have any ideas or suggestions to improve the site, let me know ! (you can contact me using the form in the welcome page). Thanks!