Порядок вывода
1️⃣В ids два идентификатора: a и b. В states только один статус: ok. Вызов zip создаёт итератор, который будет получать элементы по мере обхода.
2️⃣При первом шаге цикла элементы есть в обоих списках. zip выдаёт пару a и ok, тело цикла выполняется и печатает a ok.
3️⃣На следующем шаге в ids ещё есть b, а states уже закончился. Из-за strict=True возникает ValueError. Вторую пару zip не выдаёт, тело цикла для b не выполняется.
4️⃣Исключение перехватывает блок except, который печатает mismatch. Получаются две строки: a ok, затем mismatch.
Почему это важно
Строгий режим помогает обнаружить несовпадение числа записей, но не проверяет весь вход заранее. Если тело цикла сохраняет данные или отправляет запросы, часть работы может быть выполнена до ошибки. Для готовых списков можно отдельно проверить длины до начала обработки.
Post #4932
124