Задача 6. Сжатие списка

Дан список из N целых случайных чисел (число от 0 до 2). Напишите программу, которая выполняет «сжатие списка» — переставляет все нулевые элементы в конец массива. При этом все ненулевые элементы располагаются в начале массива в том же порядке. Затем все нули из списка удаляются.

Пример:

Кол-во чисел в списке: 10
Список до сжатия: [0, 2, 1, 0, 0, 0, 1, 0, 2, 0]
Список после сжатия: [2, 1, 1, 2]

Решение:

import random

duration = int(input('Кол-во чисел в списке: '))

before = [random.randint(0, 2) for _ in range(duration)]
print('Список до сжатия:', before)

# Пошел немного по другому пути.
# Не стал писать процедуру по смещениям.
compress = [x for x in before if x > 0]
count = len(before) - len(compress)
after = compress[:] + [0 for _ in range(count)]

print('Список после сжатия:', compress)

4080login-checkЗадача 6. Сжатие списка

Добавить комментарий