J'avais vu cette question de test sur Pluralsight :
Étant donné ces ensembles :
x = {'a', 'b', 'c', 'd'}
y = {'c', 'e', 'f'}
z = {'a', 'g', 'h', 'i'}
Quelle est la valeur de x | y ^ z
?
La réponse attendue est :
{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'}
Combine les ensembles (en éliminant automatiquement les doublons), et les ordonne du plus petit au plus grand.
Mes questions sont les suivantes :
- Comment s'appelle cette expression ?
- Pourquoi est-ce que j'obtiens 3 résultats différents avec 3 versions différentes de Python ?
Résultat avec Python 3.7.5 sur Ubuntu 18.04 :
{'c', 'h', 'f', 'd', 'b', 'i', 'g', 'a', 'e'}
Résultat sur Python 2.17.17rc1 sur Ubuntu 18.04 :
set(['a', 'c', 'b', 'e', 'd', 'g', 'f', 'i', 'h'])
Résultat sur Python 3.7.2 sur Windows 10 :
{'a', 'd', 'h', 'f', 'b', 'g', 'e', 'c', 'i'}
Voici une copie du même code que j'utilise pour cela : https://repl.it/repls/RudeMoralWorkplace
J'aimerais comprendre ce qui se passe en coulisses avec ces expressions afin de pouvoir démystifier pourquoi j'obtiens des résultats différents.