Задано список B. Написати програму формування іншого списку, в якому елементи сформовані таким чином, що нульові елементи перенесено у хвіст списку. Порядок розміщення інших елементів не змінювати.
Ми можемо використовувати функцію filter() з вбудованим перетворювачем, щоб створити новий список, що містить тільки ненульові елементи з вихідного списку. Потім ми можемо використовувати функцію extend() для того, щоб додати всі нульові елементи в список, починаючи з хвоста.
# початковий список
B = [1, 0, 2, 3, 0, 4, 5, 0]
# створюємо новий список, що містить тільки ненульові елементи
non_zeros = list(filter(lambda x: x != 0, B))
# додаємо нульові елементи до хвоста списку
non_zeros.extend(filter(lambda x: x == 0, B))
# результівний список
print(non_zeros) # [1, 2, 3, 4, 5, 0, 0, 0]
Або ми можемо використати два цикли 'for' і функцію append спочатку для цифр, що не дорівнюють нулю, а потім і для них
# початковий список
B = [1, 0, 2, 3, 0, 4, 5, 0]
# створюємо новий список, що містить тільки ненульові елементи
Answers & Comments
У нас є кілька варіантів:
Ми можемо використовувати функцію filter() з вбудованим перетворювачем, щоб створити новий список, що містить тільки ненульові елементи з вихідного списку. Потім ми можемо використовувати функцію extend() для того, щоб додати всі нульові елементи в список, починаючи з хвоста.
# початковий список
B = [1, 0, 2, 3, 0, 4, 5, 0]
# створюємо новий список, що містить тільки ненульові елементи
non_zeros = list(filter(lambda x: x != 0, B))
# додаємо нульові елементи до хвоста списку
non_zeros.extend(filter(lambda x: x == 0, B))
# результівний список
print(non_zeros) # [1, 2, 3, 4, 5, 0, 0, 0]
Або ми можемо використати два цикли 'for' і функцію append спочатку для цифр, що не дорівнюють нулю, а потім і для них
# початковий список
B = [1, 0, 2, 3, 0, 4, 5, 0]
# створюємо новий список, що містить тільки ненульові елементи
non_zeros = []
for i in B:
if i != 0:
non_zeros.append(i)
# додаємо нульові елементи до хвоста списку
for i in B:
if i == 0:
non_zeros.append(i)
# результівний список
print(non_zeros) # [1, 2, 3, 4, 5, 0, 0, 0]