Математическая операция с условным и логическим
Я занимаюсь реверс-инжинирингом сценария Python, который анализирует файл XML в файл другого типа. При этом я наткнулся на очень элегантную строку кода:
nyear += (1900, 2000)[nyear < 83]
Мне было интересно, если кто-нибудь знает, как эта операция называется в Python? Я никогда не видел такой синтаксис в Python раньше.
Кстати, результаты пары nyear
Значения будут следующими:
>>> nyear = 17
>>> nyear += (1900, 2000)[nyear < 83]
2017
>>> nyear = 83
>>> nyear += (1900, 2000)[nyear < 83]
1983
1 ответ
Это просто индексирование кортежей. В большинстве случаев лучше идиома
2000 if nyear < 83 else 1900