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 http://software-carpentry.org/license.html 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 01234567 -7-6-5-4-3-2

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 01234567 -7-6-5-4-3-2

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 01234567 -7-6-5-4-3-2

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 01234567 -7-6-5-4-3-2

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 01234567 -7-6-5-4-3-2

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 01234567 -7-6-5-4-3-2

13
PythonSlicing Python checks bounds when indexing But truncates when slicing >>> element = 'uranium' >>> print element[400] IndexError: string index out of range >>> uranium 01234567 -7-6-5-4-3-2

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 01234567 -7-6-5-4-3-2

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 01234567 -7-6-5-4-3-2 "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 01234567 -7-6-5-4-3-2 "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 10 20 30 40 points

33
PythonSlicing 10 20 30 40 points middle

34
PythonSlicing 10 20 30 40 points middle 'whoops'

35
PythonSlicing 10 20 30 40 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 http://software-carpentry.org/license.html for more information.

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google