Posté par gasche .
En réponse à la dépêche Python 2.7.
Évalué à 2.
Attention avec l'exemple du CSV : l'ordre d'un OrderedDict est l'ordre d'insertion dans le dictionnaire. Quand tu reçois deux OrderedDict avec les mêmes clés, tu ne peux pas supposer que l'ordre sera le même.
Python 3.1.2 (r312:79147, Mar 21 2010, 18:30:25)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from collections import OrderedDict
>>> header = OrderedDict([('a', 'Nom de la colonne A'), ('b', 'Nom de la colonne B')])
>>> line = OrderedDict()
>>> line['b'] = 'Valeur pour B'
>>> line['a'] = 'Valeur pour A'
>>> for h in header.values(): print(h)
...
Nom de la colonne A
Nom de la colonne B
>>> for v in line.values(): print(v)
...
Valeur pour B
Valeur pour A
Il me semble qu'il faut repasser par un tri explicite des entrées du dictionnaire / de la liste, dans tous les cas.
[^] # Re: Fonctionnalités Python 3.1 -> 2.7
Posté par gasche . En réponse à la dépêche Python 2.7. Évalué à 2.
Python 3.1.2 (r312:79147, Mar 21 2010, 18:30:25)[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from collections import OrderedDict
>>> header = OrderedDict([('a', 'Nom de la colonne A'), ('b', 'Nom de la colonne B')])
>>> line = OrderedDict()
>>> line['b'] = 'Valeur pour B'
>>> line['a'] = 'Valeur pour A'
>>> for h in header.values(): print(h)
...
Nom de la colonne A
Nom de la colonne B
>>> for v in line.values(): print(v)
...
Valeur pour B
Valeur pour A
Il me semble qu'il faut repasser par un tri explicite des entrées du dictionnaire / de la liste, dans tous les cas.