Поскольку [...]
означает любой из набора символов, а потому, что два символа в группе, разделенные тире, означают диапазон символов (часто «az» или «0-9»), ваш паттерн говорит: косой чертой, за которой следуют любые символы в группе, содержащей x, {, 1, F, 6, 0, 1, диапазон} через x, {, 1, F, 6, 4, f или} ", за которым следует косая черта и буква u ". Этот диапазон в середине - это то, что re вызывает неправильный диапазон символов.
Да, вызов s[0:-1]
является точно тем же как вызовом s[:-1]
.
Используя отрицательное число, поскольку индекс в Python возвращает энный элемент из правой стороны списка (в противоположность обычной левой стороне).
поэтому, если у Вас есть список как так:
myList = ['a', 'b', 'c', 'd', 'e']
print myList[-1] # prints 'e'
оператор печати распечатает "e".
, После того как Вы понимаете, что (который Вы уже можете, не совсем ясно, если это - одна из вещей, Вы смущены или не), мы можем начать говорить о разрезании.
я собираюсь предположить, что Вы понимаете основы части вроде myList[2:4]
(который возвратится ['c', 'd']
), и перейдите прямо в режущую нотацию, где одна сторона оставлена незаполненная.
, Поскольку Вы подозревали в своем сообщении, myList[:index]
точно то же как myList[0:index]
.
Это - также работы наоборот, между прочим... myList[index:]
совпадает с myList[index:len(myList)]
и возвратит список всех элементов из списка, запускающегося в index
и идущего до конца (например, print myList[2:]
распечатает ['c', 'd', 'e']
).
Как третье примечание, можно даже сделать print myList[:]
, где никакой индекс обозначается, который в основном возвратит копию всего списка (эквивалентный [1 113], возвраты ['b', 'c', 'd', 'e']). Это могло бы быть полезно, если Вы думаете, что myList собирается измениться в какой-то момент, но Вы хотите сохранить копию его в ее текущем состоянии.
, Если Вы уже не делаете его, я нахожу просто бездельничание в интерпретаторе Python целый набор большая справка к пониманию этих вещей. Я рекомендую IPython.
Критический момент - то, что индексы Python должны считаться указателями на пробелы между записями в списке, а не к самим элементам. Следовательно, 0 точек к началу, 1 к между первым и вторым... и n к между энным и (n+1) Св.
Таким образом l [1:2] дают Вам список, содержащий просто элемент l [1], так как он дает Вам все между этими двумя указателями.
Точно так же отрицательная индексная точка промежуточные элементы, но на этот раз рассчитывая от спины, таким образом-1 точка между последним элементом и предпоследним, таким образом [0:-1] относится к блоку объектов не включая тот последний.
Как синтаксический сахар, можно кончить 0 с начала или, в действительности, конец, таким образом, l [n:] относится ко всему от l [n] в конец (если n> =len (l) затем он возвращает пустой список).
Да, вызов s[0:-1]
является логически тем же самым как s[:-1]
, так как разрезание лучше всего определяется как:
[beginning_index:ending_index]
Python позволяет Вам опускать 0, как это позволяет Ваш код более краткому.
Отрицательные индексы считаются от конца, таким образом, s [:-1] эквивалентен s [: len (s)-1] и s [-1] является последним элементом, например.