Последовательности и цикл for

Операции над объектами как совокупность методов

Цикл for

Кстати,

Последовательности

Операции над последовательностями

Константные последовательности на примере кортежа

Cтрока (введение)

Списки — модифицируемые последовательности

Имеют метод .__setitem__()

Колоды:

Имитация многомерных структур данных

Соиспользование связанных объектов

Отсутствие «подковёрного» копирования

Вычислимые последовательности

Значения не хранятся, а вычисляются .__getitem__()-ом

Д/З

Напоминалка:

Собственно задание:

  1. Прочитать и прощёлкать тьюториалпро цикл for)

  2. EJudge: CountSort 'Сортировка подчсётом'

    Вводится последовательность пар натуральных чисел, не превышающих 100, последняя строка ввода — пустая. Вывести её в лексикографически отсортированном по возрастанию виде. Дополнительные условия:

    • из составных типов данных можно пользоваться только списками и кортежами (для вывода — строками),
    • целиком последовательность в памяти хранить нельзя!
    Input:

    2, 100
    12, 4
    2, 2
    5, 8
    2, 100
    33, 33
    12, 4
    Output:

    2, 2
    2, 100
    2, 100
    5, 8
    12, 4
    12, 4
    33, 33
  3. EJudge: AbsoluteSupreme 'Частичный порядок'

    На вход подаются тройки чисел через запятую, последняя строка ввода — пустая. Между тройками введён частичный порядок: (x₀, x₁, x₂) << (y₀, y₁, y₂), если x₀ < yᵢ, x₁ < yⱼ и x₂ < yₖ, i≠j≠k. Устойчиво упорядчить последовательность по убыванию: каждая тройка должна быть «не меньше» следующих за ней. Разрешается использовать устойчивый «тяжёлый» алгоритм сортировки с квадратичной сложностью (например, сортировку выбором).

    Input:

    1,2,3
    12,11,0
    2,3,4
    7,5,2
    6,7,8
    Output:

    6, 7, 8
    2, 3, 4
    7, 5, 2
    1, 2, 3
    12, 11, 0
  4. EJudge: SpiralDigits 'Цифры по спирали'

    Ввести целые M и N, вывести последовательность 0 1 2 3 4 5 6 7 8 9 0 1 2 3 … в виде спирально (по часовой стрелке, из верхнего левого угла) заполненной таблицы N×M (N строк, M столбцов). Не забываем про то, что M и N могут быть чётными, нечётными и неизвестно, какое больше.

    Input:

    6,5
    Output:

    0 1 2 3 4 5
    7 8 9 0 1 6
    6 7 8 9 2 7
    5 6 5 4 3 8
    4 3 2 1 0 9
  5. EJudge: HalfTranspose 'Недостранспонировали'

    Ввели N строк по N целых чисел (для удобства представлены тут цифрами). Полученную матрицу

    • 1234
      5678
      9012
      3456

    попытались «транспонировать на 45° по часовой стрелке» — получилось примерно так:

    •    1
        5 2
       9 6 3
      3 0 7 4
       4 1 8
        5 2
         6

    При этом способе поворота между числами образовались «пустые места» каждое размеров в одно число, размер матрицы увеличился до 2N-1 × 2N-1. Затем все числа «упали на свободные места под ними» — переместились до ближайшей незанятой ячейки:

    •    1
        562
       90173
      3456284

    Ввести построчно через запятую элементы исходной квадратной матрицы. Вывести построчно через запятую элементы получившейся матрицы (без учёта свободных ячеек)

    Input:

    1,2,3,4
    5,6,7,8
    9,0,1,2
    3,4,5,6
    Output:

    1
    5,6,2
    9,0,1,7,3
    3,4,5,6,2,8,4

LecturesCMC/PythonIntro2024/03_SequencesFor (последним исправлял пользователь FrBrGeorge 2024-09-23 13:22:18)