2017-09-19 5 views
0

Je recompose un script python qui analyse un fichier XML dans un type de fichier de données différent. Ce faisant, je suis tombé sur une ligne très élégante de code:Opération mathématique avec conditionnel et booléen

nyear += (1900, 2000)[nyear < 83] 

Je me demandais si quelqu'un sait ce que cette opération est appelée en Python? Je n'ai jamais vu de syntaxe comme celle-ci dans Python auparavant.

Par ailleurs, les résultats d'un couple nyear valeurs seraient les suivantes:

>>> nyear = 17  
>>> nyear += (1900, 2000)[nyear < 83]  
2017  
>>> nyear = 83  
>>> nyear += (1900, 2000)[nyear < 83]  
1983 
+0

'nan <83' retourne une valeur booléenne (' 'true' ou FALSE') qui est convertie en 0 si' false' ou 1 si'on'. Vous indexez donc le tuple '(1900, 2000)' à 0 ou 1, selon que la condition est remplie ou non. L'indexation conditionnelle est ce que j'appellerais ceci. – Abdou

Répondre

1

Ceci est juste l'indexation tuple. Dans la plupart des cas un meilleur langage est

2000 if nyear < 83 else 1900