2010-10-25 2 views
57

Я новичок в Python. Я вижу :, используемый в индексах списка, особенно когда он связан с вызовами функций.Colon (:) в индексе списка Python

Документация Python 2.7 предполагает, что lists.append переводит на a[len(a):] = [x]. Почему нужно суффикс len(a) с двоеточием?

Я понимаю, что : используется для идентификации ключей в словаре.

+4

Где я могу получить python 4.7? Я хочу! В 2.7, [The Tutorial] (http://docs.python.org/tutorial/introduction.html#lists) достаточно хорошо освещает ваш вопрос. – aaronasterling

ответ

94

: является разделителем синтаксисе среза, чтобы «нарезать из» суб-частей в последовательности, [start:end]

[1:5] is equivalent to "from 1 to 5" (5 not included) 
[1:] is equivalent to "1 to end" 
[len(a):] is equivalent to "from length of a to end" 

Часы http://www.youtube.com/watch?v=tKTZoB2Vjuk около 40:00 он начинает объяснять, что.

Работает с кортежами, словарями и списками тоже.

+7

Помните, что [1: 5] начинается с объекта по индексу 1, а объект с индексом 5 не включается. Вы также можете сделать мягкую копию списка с помощью [:] –

+2

Потому что на самом деле это не так просто для пунктуации Google, как «:», я особенно оценил поиск вашего ответа и нашел его полезным. Даже используя что-то вроде symbolhound, его так часто использовали, что я боялся, что не смогу быстро найти ответ. –

+0

Не работает со словарями. применение d [: 5] является эквивалентом d .__ getitem __ (slice (0, 5, None)). Срез не хешируется. –

7

a[len(a):] - Это дает вам длину до конца. Он выбирает диапазон. Если вы отмените a[:len(a)], это даст вам начало всему, что есть len(a).

Смежные вопросы