Математическая операция с условным и логическим

Я занимаюсь реверс-инжинирингом сценария 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
Другие вопросы по тегам