Если вы уже знаете минимальный размер, вы можете распаковать минимум и остаток:
>>> list1 =[(1,2,3),(4,5),(7,8,9),(10,11)]
>>> for i, j, *r in list1:
... print(i, j, r)
...
1 2 [3]
4 5 []
7 8 [9]
10 11 []
Почему это происходит: Вы используете объекты от Стандартной библиотеки шаблонов. Некоторые Ваши операторы явно или неявно вызывают методы этих классов STL. Вы ступаете в эти методы с Вашим отладчиком.
Существует два способа зафиксировать это:
Если Вы знаете, что находитесь на statment, который вызывает метод STL, то выберите, отладчик "Переступают" через команду (F10) вместо ее "Шага В" команду (F11).
При вхождении в один из этих методов по ошибке то используйте отладчик, "Усиливают" команду (Shift-F11).
Скорее всего, то, что происходит, - то, что Вы ступаете во встроенные методы в платформу. Когда это происходит, просто нажмите, "выходят", и Вы вернетесь в своем собственном коде.
Можно также использовать, "переступают" для тех методов, которые Вы знаете, встроены - конечно, рискующий переступать через методы, в которые Вы хотите ступить.
Моя рекомендация состоит в том, что Вы удостоверяетесь, что поместили точки останова в каждой строке, где Вы хотите проверить состояние приложения - тот способ, которым можно просто использовать кнопку воспроизведения (F5).
http://mark.michaelis.net/Blog/VisualStudioKeyboardShortcutsWrapupMSDNFlashFeb22009.aspx
В основном говорящий необходимо использовать F10 (переступают) и не F11 (неродной в) том, когда текущая строка кода содержит вызов к не функция.
Лучший способ избежать использования таких методов - установить правила NoStepInto в реестре. Прочтите это сообщение в блоге , чтобы узнать, как именно это сделать.
Если вы хотите избежать использования стандартной библиотеки целиком, просто установите следующее правило:
10 std\:\:.*=NoStepInto
Для Visual Studio 2005 вам необходимо добавить правило к следующему ключу
HKLM \ Software \ Microsoft \ VisualStudio \ 8.0 \ NativeDE \ StepOver