human
Je suis en train d'essayer de faire en sorte que mon programme imprime ```"banana"``` à partir du dictionnaire. Quelle serait la manière la plus simple de le faire ?
Voici mon dictionnaire:
```prices = {
    "banana" : 4,
    "apple" : 2,
    "orange" : 1.5,
    "pear" : 3
}
``
gpt
À partir de Python 3.7, l'ordre d'insertion est maintenu, donc vous n'avez pas besoin d'un ```OrderedDict``` ici. Vous pouvez utiliser les approches suivantes avec un dictionnaire normal.

Modifié dans la version 3.7: L'ordre du dictionnaire est garanti d'être l'ordre d'insertion. Ce comportement était un détail d'implémentation de CPython à partir de la version 3.6.

source

Python 3.6 et versions antérieures*
Si vous parlez d'un dictionnaire régulier, alors la "première clé" n'a pas de signification. Les clés ne sont pas ordonnées de quelque manière que ce soit sur lesquelles vous pouvez compter. Si vous itérez sur votre dictionnaire, il est probable que vous n'obtiendrez pas "banana" comme première chose que vous voyez.
Si vous avez besoin de maintenir l'ordre, alors vous devez utiliser un ```OrderedDict``` et non seulement un dictionnaire ordinaire.
```import collections
prices  = collections.OrderedDict([
    ("banana", 4),
    ("apple", 2),
    ("orange", 1.5),
    ("pear", 3),
])
```
Si vous voulez ensuite voir toutes les clés dans l'ordre, vous pouvez le faire en itérant dessus
```for k in prices:
    print(k)
```
Vous pouvez également mettre toutes les clés dans une liste et travailler avec cela
```keys = list(prices)
print(keys[0]) # affichera "banana"
```
Une façon plus rapide d'obtenir le premier élément sans créer une liste serait d'appeler ```next``` sur l'itérateur. Cela ne se généralise pas bien lorsque vous essayez d'obtenir le ```n-ième``` élément cependant
```>>> next(iter(prices))
'banana'
```
* CPython avait l'ordre d'insertion garanti en tant que détail d'implémentation dans la version 3.6.