вопрос с нарезкой вставки, L

практикуя некоторый python, который является довольно легким языком, чтобы схватить.

у меня есть

>>> L = [1,2,3,4] >>> L[1:1] = [1,2,3] >>> L [1, 1, 2, 3, 2, 3, 4] 

поэтому на линии два фактически L[1:1] – это пустой список, но как Python может понять, что вставьте список [1,2,3] в начало с 1 . Я думаю, что есть некоторые внутренние элементы, которые не прозрачны для нас, здесь, по-видимому, я полагаю, что L[1:1] возвращает ссылку на индекс 1 даже если это возвращает пустой список …

С наилучшими пожеланиями, Умут

  • Убедитесь, что скрипт Python с субпроцессами умирает на SIGINT
  • Ошибка Suds: BadStatusLine в httplib
  • Когда вычисляется хэш-объект python и почему хэш -1 отличается?
  • есть ли способ запустить приложение для бутылок в режиме демона
  • Самый простой способ выполнения модульной инверсии матрицы с помощью Python?
  • Тип намека на Python 2
  • Динамическая навигация в колбе
  • Остановка функции третьей стороны
  • 3 Solutions collect form web for “вопрос с нарезкой вставки, L”

    L[1:1] означает срез списка L начинающийся с индекса 1 (второй элемент), вплоть до индекса 1, но не пустого. В правой части задания это просто анонимный пустой список. Но с левой стороны задание знает, где сделан срез, и может вставить новое значение списка в нужное место.

    Нарезка ведет себя по-разному в зависимости от того, находится ли она в левой или правой части выражения. Когда он находится на левой стороне, он не возвращает список – вместо этого он ведет себя как объект среза, который знает больше об срезах и имеет назначение, специально переопределенное для работы в качестве вставки.

    На мой взгляд, официальный учебник Python объясняет это лучше всего. В конце главы 3.1.2 приведена следующая диаграмма:

      +---+---+---+---+---+ | H | e | l | p | A | +---+---+---+---+---+ 0 1 2 3 4 5 

    Это иллюстрирует то, что вы можете думать об индексах, указывая МЕЖДУ элементами. Итак, на этой иллюстрации, если указать срез [1:1] , вы на самом деле ссылаетесь на пространство между H и e , но не включаете их.

    Если вы хотите перезаписать H и e , вы должны указать срез [0:2] .

    Python - лучший язык программирования в мире.