Indexing and Slicing¶
Indexing (1)¶
Accessing the n-th element is straightforward …
>>> text = "Hello World"
>>> text[0]
'H'
>>> text[6]
'W'
>>> text[-1]
'd'
>>> text[-4]
'o'
>>> text[len(text)-1] == text[-1] # AAH!!
True
Indexing (2)¶
Same with other sequences …
>>> a_list = ['Peter', 'Paul', 'Mary']
>>> a_list[0]
'Peter'
>>> a_list[-1]
'Mary'
>>> a_tuple = (1, 'one', 1.0)
>>> a_tuple[0]
1
>>> a_tuple[-1]
1.0
Slicing: Cutting Out¶
Extracting part of a sequence …
>>> text = "Hello World"
>>> text[0:5]
'Hello'
>>> text[:5]
'Hello'
>>> text[6:11]
'World'
>>> text[6:]
'World'
>>> text[6:-1]
'Worl'
>>> text[-5:-1]
'Worl'
Slicing: Step Width¶
Killer feature: slices with step width
>>> text = "Hello World"
>>> text[0:7:2]
'HloW'
>>> text[::2]
'HloWrd'
>>> text[:-6:2]
'Hlo'
>>> text[::-1]
'dlroW olleH'
Slice Assignment¶
Sub-slice assignment
>>> l = [2, 3, 'a', 'b', 7]
>>> l[2:4] = [4, 5, 6]
>>> l
[2, 3, 4, 5, 6, 7]
Prepending
>>> l[:0] = [0, 1]
>>> l
[0, 1, 2, 3, 4, 5, 6, 7]
Appending (but see list
methods append()
and extend()
>>> l[len(l):] = [8, 9]
>>> l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]