Presentation is loading. Please wait.

Presentation is loading. Please wait.

Python Mini-Course University of Oklahoma Department of Psychology Day 4 – Lesson 14 Lists 5/02/09 Python Mini-Course: Day 4 – Lesson 14 1.

Similar presentations


Presentation on theme: "Python Mini-Course University of Oklahoma Department of Psychology Day 4 – Lesson 14 Lists 5/02/09 Python Mini-Course: Day 4 – Lesson 14 1."— Presentation transcript:

1 Python Mini-Course University of Oklahoma Department of Psychology Day 4 – Lesson 14 Lists 5/02/09 Python Mini-Course: Day 4 – Lesson 14 1

2 Lesson objectives 1. Describe the characteristics of the list data structure in Python 2. Perform basic operations with lists including creation, concatenation, repetition, slicing, and traversing 3. Use string methods that require lists (join, split) 4. Use lists in functions 5/02/09 Python Mini-Course: Day 4 – Lesson 14 2

3 The list data structure In Python, a list is a mutable sequence of values Each value in the list is an element or item Elements can be any Python data type Lists can mix data types Elements can be nested lists 5/02/09 Python Mini-Course: Day 4 – Lesson 14 3

4 Creating lists numbers = [1, 2, 3, 4] print numbers cheeses = ['swiss', 'cheddar', 'ricotta', 'gouda'] print cheeses 5/02/09 Python Mini-Course: Day 4 – Lesson 14 4

5 Creating lists mixed = [1, 'a', 3.45] print mixed single = ['z'] print single, type(single) empty = [] print empty 5/02/09 Python Mini-Course: Day 4 – Lesson 14 5

6 Repeating a list Use the * operator: meat = ['spam']*4 print meat print [1, 2, 3]*3 5/02/09 Python Mini-Course: Day 4 – Lesson 14 6

7 List indexing Elements within a list are indexed (see Lesson 10) print cheeses[0] Lists are mutable cheeses[0] = 'Feta' print cheeses 5/02/09 Python Mini-Course: Day 4 – Lesson 14 7

8 Slicing a list Like strings and other sequences, lists can be sliced print cheeses[1:4] print cheeses[:2] print cheeses[2:] 5/02/09 Python Mini-Course: Day 4 – Lesson 14 8

9 Changing a slice roster = ['Meghan', 'Tricia', 'Juan', 'Alton', 'Darrel', 'Jen'] print roster roster[1:3] = ['Sam', 'Kerri'] print roster roster[3:5] = ['Tayla'] print roster 5/02/09 Python Mini-Course: Day 4 – Lesson 14 9

10 Inserting elements Slice notation roster[2:2] = ['Dana', 'Ryan'] print roster 5/02/09 Python Mini-Course: Day 4 – Lesson 14 10

11 Deleting elements Set slice to empty list roster[3:5] = [] print roster The del keyword del roster[2:3] print roster 5/02/09 Python Mini-Course: Day 4 – Lesson 14 11

12 The insert and append methods The insert method roster.insert(2,'Jakob') print roster The append method roster.append('Tonya') print roster 5/02/09 Python Mini-Course: Day 4 – Lesson 14 12

13 The extend method Adds a list to the end of an existing list adds = ['Ian', 'Stacie'] roster.extend(adds) print roster 5/02/09 Python Mini-Course: Day 4 – Lesson 14 13

14 Extending a list Can also use += operator roster += ['Anya'] print roster 5/02/09 Python Mini-Course: Day 4 – Lesson 14 14

15 Using the + operator a = [1, 2, 3] b = [4, 5, 6] c = a + b print a, b, c *The + operator returns a new list that is a concatenation of two lists 5/02/09 Python Mini-Course: Day 4 – Lesson 14 15

16 Note on list operations Be careful when using the + operator and append method Try this: d = c + 7 Or this c.append(b) print c 5/02/09 Python Mini-Course: Day 4 – Lesson 14 16

17 List assignment and aliasing a = [1, 2, 3, 4] b = a c = a[:] a[2] = 9 print a, b, c *The slice operator returns a copy of a list 5/02/09 Python Mini-Course: Day 4 – Lesson 14 17

18 Other list methods roster.sort() print roster roster.reverse() print roster 5/02/09 Python Mini-Course: Day 4 – Lesson 14 18

19 Other list methods print roster.index('Tonya') print roster.index('Tonya', 2, 5) print roster.count('Sam') roster.remove('Sam') print roster 5/02/09 Python Mini-Course: Day 4 – Lesson 14 19

20 The join string method Concatenates a sequence of strings into a single string with sep inserted between each item. Syntax: sep.join(list) 5/02/09 Python Mini-Course: Day 4 – Lesson 14 20

21 The split string method Returns a list of words from a string using sep as the delimiter string Syntax: sep.split(list) 5/02/09 Python Mini-Course: Day 4 – Lesson 14 21

22 Example: join_split.py t = ['pining', 'for', 'the', 'fjords'] delimiter = '_' s = delimiter.join(t) print s u = s.split(delimiter) print u 5/02/09 Python Mini-Course: Day 4 – Lesson 14 22

23 Example print ''.join(t) print '\t'.join(t) 5/02/09 Python Mini-Course: Day 4 – Lesson 14 23

24 Traversing a list for index in range(len(roster)): print roster[index] for student in roster: print student for index, student in enumerate(roster): print index, student 5/02/09 Python Mini-Course: Day 4 – Lesson 14 24

25 Traversing a list What does this do? empty = [] for x in empty: print x 5/02/09 Python Mini-Course: Day 4 – Lesson 14 25

26 Nested lists nested = [[1,2,3],[4,5,6],[7,8,9]] print nested print nested[0] print nested[0][1] 5/02/09 Python Mini-Course: Day 4 – Lesson 14 26

27 Traversing nested lists for i in range(len(nested)): for j in range(len(nested[i])): print nested[i][j] 5/02/09 Python Mini-Course: Day 4 – Lesson 14 27

28 Traversing nested lists for nest in nested: for item in nest: print item 5/02/09 Python Mini-Course: Day 4 – Lesson 14 28

29 Using lists: cumulate.py def cumulate(seq): c_sum = 0 for item in seq: c_sum += item return c_sum a = [12, 78, 32, 82] s = cumulate(a) print s 5/02/09 Python Mini-Course: Day 4 – Lesson 14 29

30 Returning lists from functions: only_upper.py def only_upper(t): res = [] for s in t: if s.isupper(): res.append(s) return res text = 'Bold cOlOrs Make for Easy Reading' secret = only_upper(text) print secret 5/02/09 Python Mini-Course: Day 4 – Lesson 14 30

31 Modifying lists in functions In Python, arguments are passed by reference The parameter in the function is an alias for the argument that was passed in If a mutable object is changed inside the function, it is also changed outside the function 5/02/09 Python Mini-Course: Day 4 – Lesson 14 31

32 Example: byref.py def change(seq): print 'Passed in: ' + str(seq) seq.append('new item') print 'Changed to: ' + str(seq) original = [1, 2, 3] print original change(original) print original 5/02/09 Python Mini-Course: Day 4 – Lesson 14 32

33 Example: byref2.py def change(seq): print 'Passed in: ' + str(seq) seq.append('new item') print 'Changed to: ' + str(seq) new_seq = ['created','in','function'] print 'New seq: ' + str(new_seq) original = [1, 2, 3] new_seq = ['outside','the','function'] print original change(original) print original print new_seq 5/02/09 Python Mini-Course: Day 4 – Lesson 14 33

34 Suggested exercises Exercise 10.5 – Solving the "Birthday Paradox" by a Monte Carlo simulation Exercise 10.6 – Removing duplicates from a list Exercise 10.8 – Bisection search 5/02/09 Python Mini-Course: Day 4 – Lesson 14 34


Download ppt "Python Mini-Course University of Oklahoma Department of Psychology Day 4 – Lesson 14 Lists 5/02/09 Python Mini-Course: Day 4 – Lesson 14 1."

Similar presentations


Ads by Google