Я видел множество Python вопросов с фрагментами списка здесь, я не думаю, что я что-то дублирую, несмотря на то, что это затрагивает многие из тех же вопросов. Мой вопрос касается сокращения списка с использованием срезов, создания нового списка и обновления исходного списка.
Моя задача заключается в определении метода Class
, который принимает два аргумента (word_list, num)
и манипулирует word_list
используя нарезку. Я продолжаю нарезать, пока word_list
не станет пустым, сохраняя каждый срез в новом списке. Не важно, с какого конца я срезаю, с точки зрения содержания среза, но просто то, что я могу продолжать нарезку и вести точную запись событий.
Примите следующее:
word_list = ["once", "upon", "a", "time", "there", "lived", "an", "old", "man"]
sub_list1 = word_list[:2] # ["once", "upon"]
word_list = word_list[2:] # ["a", "time", "there", "lived", "an", "old", "man"]
сравните это с
word_list = ["once", "upon", "a", "time", "there", "lived", "an", "old", "man"]
sub_list2 = word_list[-2:] # ["old", "man"]
word_list = word_list[:-2] # ["once", "upon", "a", "time", "there", "lived"]
. В первом примере выше элементы списка «шунтируются» по мере взятия фрагментов, в отличие от второго, когда список просто укорачивается и ничто не «движется». Я придумываю проблему или есть какие-то фактические последствия для нарезки word_list
по-другому?