Download presentation

Presentation is loading. Please wait.

Published byBraden Hobbins Modified about 1 year ago

1
Slicing Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See for more information. Python

2
Slicing Lists, strings, and tuples are all sequences

3
PythonSlicing Lists, strings, and tuples are all sequences Can be indexed by integers in the range 0…len(X)-1

4
PythonSlicing Lists, strings, and tuples are all sequences Can be indexed by integers in the range 0…len(X)-1 Can also be sliced using a range of indices

5
PythonSlicing Lists, strings, and tuples are all sequences Can be indexed by integers in the range 0…len(X)-1 Can also be sliced using a range of indices >>> element = 'uranium' >>> uranium

6
PythonSlicing Lists, strings, and tuples are all sequences Can be indexed by integers in the range 0…len(X)-1 Can also be sliced using a range of indices >>> element = 'uranium' >>> print element[1:4] ran >>> uranium

7
PythonSlicing Lists, strings, and tuples are all sequences Can be indexed by integers in the range 0…len(X)-1 Can also be sliced using a range of indices >>> element = 'uranium' >>> print element[1:4] ran >>> print element[:4] uran >>> uranium

8
PythonSlicing Lists, strings, and tuples are all sequences Can be indexed by integers in the range 0…len(X)-1 Can also be sliced using a range of indices >>> element = 'uranium' >>> print element[1:4] ran >>> print element[:4] uran >>> print element[4:] ium >>> uranium

9
PythonSlicing Lists, strings, and tuples are all sequences Can be indexed by integers in the range 0…len(X)-1 Can also be sliced using a range of indices >>> element = 'uranium' >>> print element[1:4] ran >>> print element[:4] uran >>> print element[4:] ium >>> print element[-4:] nium >>> uranium

10
PythonSlicing Python checks bounds when indexing

11
PythonSlicing Python checks bounds when indexing But truncates when slicing

12
PythonSlicing Python checks bounds when indexing But truncates when slicing >>> element = 'uranium' >>> uranium

13
PythonSlicing Python checks bounds when indexing But truncates when slicing >>> element = 'uranium' >>> print element[400] IndexError: string index out of range >>> uranium

14
PythonSlicing Python checks bounds when indexing But truncates when slicing >>> element = 'uranium' >>> print element[400] IndexError: string index out of range >>> print element[1:400] ranium >>> uranium

15
PythonSlicing Python checks bounds when indexing But truncates when slicing >>> element = 'uranium' >>> print element[400] IndexError: string index out of range >>> print element[1:400] ranium >>> uranium "A foolish consistency is the hobgoblin of little minds." —Ralph Waldo Emerson

16
PythonSlicing Python checks bounds when indexing But truncates when slicing >>> element = 'uranium' >>> print element[400] IndexError: string index out of range >>> print element[1:400] ranium >>> uranium "A foolish consistency is the hobgoblin of little minds." —Ralph Waldo Emerson "Aw, you're kidding me!" —programmers

17
PythonSlicing So text[1:3] is 0, 1, or 2 characters long

18
PythonSlicing So text[1:3] is 0, 1, or 2 characters long '' 'a''' 'ab''b' 'abc''bc' 'abcdef''bc'

19
PythonSlicing For consistency, text[1:1] is the empty string

20
PythonSlicing For consistency, text[1:1] is the empty string –From index 1 up to (but not including) index 1

21
PythonSlicing For consistency, text[1:1] is the empty string –From index 1 up to (but not including) index 1 And text[3:1] is always the empty string

22
PythonSlicing For consistency, text[1:1] is the empty string –From index 1 up to (but not including) index 1 And text[3:1] is always the empty string –Not the reverse of text[1:3]

23
PythonSlicing For consistency, text[1:1] is the empty string –From index 1 up to (but not including) index 1 And text[3:1] is always the empty string –Not the reverse of text[1:3] But text[1:-1] is everything except the first and last characters

24
PythonSlicing Slicing always creates a new collection

25
PythonSlicing Slicing always creates a new collection Beware of aliasing

26
PythonSlicing Slicing always creates a new collection Beware of aliasing >>> points = [[10, 10], [20, 20], [30, 30], [40, 40]] >>>

27
PythonSlicing Slicing always creates a new collection Beware of aliasing >>> points = [[10, 10], [20, 20], [30, 30], [40, 40]] >>> middle = points[1:-1] >>>

28
PythonSlicing Slicing always creates a new collection Beware of aliasing >>> points = [[10, 10], [20, 20], [30, 30], [40, 40]] >>> middle = points[1:-1] >>> middle[0][0] = 'whoops' >>>

29
PythonSlicing Slicing always creates a new collection Beware of aliasing >>> points = [[10, 10], [20, 20], [30, 30], [40, 40]] >>> middle = points[1:-1] >>> middle[0][0] = 'whoops' >>> middle[1][0] = 'aliasing' >>>

30
PythonSlicing Slicing always creates a new collection Beware of aliasing >>> points = [[10, 10], [20, 20], [30, 30], [40, 40]] >>> middle = points[1:-1] >>> middle[0][0] = 'whoops' >>> middle[1][0] = 'aliasing' >>> print middle [['whoops', 20], ['aliasing', 30]] >>>

31
PythonSlicing Slicing always creates a new collection Beware of aliasing >>> points = [[10, 10], [20, 20], [30, 30], [40, 40]] >>> middle = points[1:-1] >>> middle[0][0] = 'whoops' >>> middle[1][0] = 'aliasing' >>> print middle [['whoops', 20], ['aliasing', 30]] >>> print points [[10, 10], ['whoops', 20], ['aliasing', 30], [40, 40]] >>>

32
PythonSlicing points

33
PythonSlicing points middle

34
PythonSlicing points middle 'whoops'

35
PythonSlicing points middle 'whoops' 'aliasing'

36
October 2010 created by Greg Wilson Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See for more information.

Similar presentations

© 2016 SlidePlayer.com Inc.

All rights reserved.

Ads by Google