Изучаю курс: “Школа программирования | Python. Основы языка и разработки веб-приложений”
Там такое задание:
# B. Начинающиеся с X в начале # Функция принимает в качестве аргумента список строк. # Необходимо вернуть отсортированный список строк, в котором: # сначала идет группа строк, начинающихся на 'x', затем все остальные. # Например: из ['mix', 'xyz', 'apple', 'xanadu', 'aardvark'] получится # ['xanadu', 'xyz', 'aardvark', 'apple', 'mix'] # Подсказка: это можно сделать при помощи склеивания 2х заранее отсортированных списков
def front_x(words): a=[] print(words, 'words1') for i in words: if 'x' in i: a.insert(0, i) words.pop(words.index(i)) print(a, 'a') print(words, 'words2') print(sorted(a), 'a.sort') #return
Для каждого элемента сделал проверку. Если в i есть буква ‘x’, то этот элемент перемещаю в новый список. Но не пойму почему - некоторые элементы не перемещались в другой список.
Вот вывод:
Начинающиеся с X в начале (['bbb', 'ccc', 'axx', 'xzz', 'xaa'], 'words1') (['axx'], 'a') (['bbb', 'ccc', 'xzz', 'xaa'], 'words2') (['xaa', 'axx'], 'a') (['bbb', 'ccc', 'xzz'], 'words2') (['axx', 'xaa'], 'a.sort') X Получено: None | Ожидалось: ['xaa', 'xzz', 'axx', 'bbb', 'ccc'] (['ccc', 'bbb', 'aaa', 'xcc', 'xaa'], 'words1') (['xcc'], 'a') (['ccc', 'bbb', 'aaa', 'xaa'], 'words2') (['xcc'], 'a.sort') X Получено: None | Ожидалось: ['xaa', 'xcc', 'aaa', 'bbb', 'ccc'] (['mix', 'xyz', 'apple', 'xanadu', 'aardvark'], 'words1') (['mix'], 'a') (['xyz', 'apple', 'xanadu', 'aardvark'], 'words2') (['xanadu', 'mix'], 'a') (['xyz', 'apple', 'aardvark'], 'words2') (['mix', 'xanadu'], 'a.sort') X Получено: None | Ожидалось: ['xanadu', 'xyz', 'aardvark', 'apple', 'mix']
Где моя ошибка?