Python Какая принципиальная разница в записи условия?
Позволю себе добавить к словам других комментаторов: обычно лучше не делать "громадные условия", их трудно читать. Почти всегда можно как-нибудь оптимизировать и сократить, например, разложив его на отдельные переменные, или составляя список и натравливая на него any() / all(), или вынося это всё в отдельную функцию с кучей assert, вместо условия ловя AssertionError.
Во-первых, первый вариант более читабельный. Лично я всегда использую именно "полный" вариант условия, если этот проект в будущем будет поддерживаться (другими людьми в т.ч.).
Во-вторых, как написал Roman Kitaev, "короткая" конструкция требует наличия else, а иногда этот else нам просто ни к чему.