Первое: перестаньте говорить «питон», когда вы имеете в виду «чистый».Это просто глупое модное слово.
Не используйте подобные троичные выражения;он предназначен для использования как часть выражения, а не как управление потоком.Это чище:
for word in words:
if word[0] == 'x':
list_1.append(word)
else:
list_2.append(word)
Вы можете улучшить его немного больше - используйте троичные выражения, как это хорошо:
for word in words:
target = list_1 if word[0] == 'x' else list_2
target.append(word)
Если words
является контейнером, а не итератором, вы можете использовать:
list_1 = [word for word in words if word[0] == 'x']
list_2 = [word for word in words if word[0] != 'x']
Наконец, мы можем удалить все целиком и вместо этого использовать две сортировки:
result = sorted(words)
result = sorted(result, key=lambda word: word[0] != 'x')
, которая сначала сортируется нормально, затем использует свойство stable Pythonсортирует для перемещения слов, начинающихся с «x», на передний план без изменения порядка.