Tuples Chapter 10 Python for Everybody

Slides:



Advertisements
Similar presentations
Python for Informatics: Exploring Information
Advertisements

Container Types in Python
Introduction to PHP Dr. Charles Severance
String and Lists Dr. Benito Mendoza. 2 Outline What is a string String operations Traversing strings String slices What is a list Traversing a list List.
Data Structures in Python By: Christopher Todd. Lists in Python A list is a group of comma-separated values between square brackets. A list is a group.
Built-in Data Structures in Python An Introduction.
PHP Arrays Dr. Charles Severance
Variables, Expressions, and Statements
Data Collections: Lists CSC 161: The Art of Programming Prof. Henry Kautz 11/2/2009.
Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C H A P T E R 8 Lists and Tuples.
Conditional Execution Chapter 3 Python for Informatics: Exploring Information
Tuples Chapter 10 Python for Informatics: Exploring Information
CS190/295 Programming in Python for Life Sciences: Lecture 6 Instructor: Xiaohui Xie University of California, Irvine.
LISTS and TUPLES. Topics Sequences Introduction to Lists List Slicing Finding Items in Lists with the in Operator List Methods and Useful Built-in Functions.
PHP Arrays Dr. Charles Severance
Loops and Iteration Chapter 5 Python for Informatics: Exploring Information
Python Data Structures By Greg Felber. Lists An ordered group of items Does not need to be the same type – Could put numbers, strings or donkeys in the.
String and Lists Dr. José M. Reyes Álamo. 2 Outline What is a string String operations Traversing strings String slices What is a list Traversing a list.
Equality, references and mutability COMPSCI 105 SS 2015 Principles of Computer Science.
String and Lists Dr. José M. Reyes Álamo.
Introduction to Dynamic Web Content
Why Program? Chapter 1 Python for Everybody
PHP Arrays Dr. Charles Severance
Our Technologies Dr. Charles Severance
Reading Files Chapter 7 Python for Everybody
Python Dictionaries Chapter 9 Python for Everybody
PHP Functions / Modularity
Getting PHP Hosting Dr. Charles Severance
Conditional Execution
Python - Lists.
Regular Expressions Chapter 11 Python for Everybody
Containers and Lists CIS 40 – Introduction to Programming in Python
Loops and Iteration Chapter 5 Python for Everybody
Introduction to PHP Dr. Charles Severance
HTTP Parameters and Arrays
Python Lists Chapter 8 Python for Everybody
Functions Chapter 4 Python for Everybody
PHP Arrays Dr. Charles Severance
Week 5: Dictionaries and tuples
Object Oriented Programming in JavaScript
Expressions and Control Flow in PHP
LING 388: Computers and Language
PHP Namespaces (in progress)
Intro to Computer Science CS1510 Dr. Sarah Diesburg
Introduction to Dynamic Web Content
Bryan Burlingame Halloween 2018
Guide to Programming with Python
CS190/295 Programming in Python for Life Sciences: Lecture 6
6. Lists Let's Learn Python and Pygame
8 – Lists and tuples John R. Woodward.
Python for Informatics: Exploring Information
String and Lists Dr. José M. Reyes Álamo.
Intro to Computer Science CS1510 Dr. Sarah Diesburg
Topics Sequences Introduction to Lists List Slicing
Intro to Computer Science CS1510 Dr. Sarah Diesburg
Intro to Computer Science CS1510 Dr. Sarah Diesburg
Charles Severance Single Table SQL.
Python for Informatics: Exploring Information
Bryan Burlingame Halloween 2018
Topics Sequences Introduction to Lists List Slicing
Why Program? Chapter 1 Python for Everybody
For loop Using lists.
Intro to Computer Science CS1510 Dr. Sarah Diesburg
Sample lecture slides.
Python List.
Python - Tuples.
Tuple.
Introduction to Computer Science
Model View Controller (MVC)
Presentation transcript:

Tuples Chapter 10 Python for Everybody www.py4e.com Note from Chuck. If you are using these materials, you can remove the UM logo and replace it with your own, but please retain the CC-BY logo on the first page as well as retain the acknowledgement page(s) at the end. Chapter 10 Python for Everybody www.py4e.com

Tuples Are Like Lists Tuples are another kind of sequence that functions much like a list - they have elements which are indexed starting at 0 >>> for iter in y: ... print(iter) ... 1 9 2 >>> >>> x = ('Glenn', 'Sally', 'Joseph') >>> print(x[2]) Joseph >>> y = ( 1, 9, 2 ) >>> print(y) (1, 9, 2) >>> print(max(y)) 9

but... Tuples are “immutable” Unlike a list, once you create a tuple, you cannot alter its contents - similar to a string >>> x = [9, 8, 7] >>> x[2] = 6 >>> print(x) >>>[9, 8, 6] >>> >>> y = 'ABC' >>> y[2] = 'D' Traceback:'str' object does not support item Assignment >>> >>> z = (5, 4, 3) >>> z[2] = 0 Traceback:'tuple' object does not support item Assignment >>>

Things not to do With Tuples >>> x = (3, 2, 1) >>> x.sort() Traceback: AttributeError: 'tuple' object has no attribute 'sort' >>> x.append(5) AttributeError: 'tuple' object has no attribute 'append' >>> x.reverse() AttributeError: 'tuple' object has no attribute 'reverse' >>>

A Tale of Two Sequences >>> l = list() >>> dir(l) ['append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] >>> t = tuple() >>> dir(t) ['count', 'index']

Tuples are More Efficient Since Python does not have to build tuple structures to be modifiable, they are simpler and more efficient in terms of memory use and performance than lists So in our program when we are making “temporary variables” we prefer tuples over lists

Tuples and Assignment We can also put a tuple on the left-hand side of an assignment statement We can even omit the parentheses >>> (x, y) = (4, 'fred') >>> print(y) fred >>> (a, b) = (99, 98) >>> print(a) 99

Tuples and Dictionaries >>> d['csev'] = 2 >>> d['cwen'] = 4 >>> for (k,v) in d.items(): ... print(k, v) ... csev 2 cwen 4 >>> tups = d.items() >>> print(tups) dict_items([('csev', 2), ('cwen', 4)]) The items() method in dictionaries returns a list of (key, value) tuples

Tuples are Comparable The comparison operators work with tuples and other sequences. If the first item is equal, Python goes on to the next element, and so on, until it finds elements that differ. >>> (0, 1, 2) < (5, 1, 2) True >>> (0, 1, 2000000) < (0, 3, 4) >>> ( 'Jones', 'Sally' ) < ('Jones', 'Sam') >>> ( 'Jones', 'Sally') > ('Adams', 'Sam')

Sorting Lists of Tuples We can take advantage of the ability to sort a list of tuples to get a sorted version of a dictionary First we sort the dictionary by the key using the items() method and sorted() function >>> d = {'a':10, 'b':1, 'c':22} >>> d.items() dict_items([('a', 10), ('c', 22), ('b', 1)]) >>> sorted(d.items()) [('a', 10), ('b', 1), ('c', 22)]

Using sorted() >>> d = {'a':10, 'b':1, 'c':22} >>> t = sorted(d.items()) >>> t [('a', 10), ('b', 1), ('c', 22)] >>> for k, v in sorted(d.items()): ... print(k, v) ... a 10 b 1 c 22 We can do this even more directly using the built-in function sorted that takes a sequence as a parameter and returns a sorted sequence

Sort by Values Instead of Key If we could construct a list of tuples of the form (value, key) we could sort by value We do this with a for loop that creates a list of tuples >>> c = {'a':10, 'b':1, 'c':22} >>> tmp = list() >>> for k, v in c.items() : ... tmp.append( (v, k) ) ... >>> print(tmp) [(10, 'a'), (22, 'c'), (1, 'b')] >>> tmp = sorted(tmp, reverse=True) [(22, 'c'), (10, 'a'), (1, 'b')]

The top 10 most common words fhand = open('romeo.txt') counts = {} for line in fhand: words = line.split() for word in words: counts[word] = counts.get(word, 0 ) + 1 lst = [] for key, val in counts.items(): newtup = (val, key) lst.append(newtup) lst = sorted(lst, reverse=True) for val, key in lst[:10] : print(key, val)

Even Shorter Version >>> c = {'a':10, 'b':1, 'c':22} >>> print( sorted( [ (v,k) for k,v in c.items() ] ) ) [(1, 'b'), (10, 'a'), (22, 'c')] List comprehension creates a dynamic list. In this case, we make a list of reversed tuples and then sort it. http://wiki.python.org/moin/HowTo/Sorting

Summary Tuple syntax Tuples in assignment statements Immutability Comparability Sorting Tuples in assignment statements Sorting dictionaries by either key or value

Acknowledgements / Contributions These slides are Copyright 2010- Charles R. Severance (www.dr-chuck.com) of the University of Michigan School of Information and open.umich.edu and made available under a Creative Commons Attribution 4.0 License. Please maintain this last slide in all copies of the document to comply with the attribution requirements of the license. If you make a change, feel free to add your name and organization to the list of contributors on this page as you republish the materials. Initial Development: Charles Severance, University of Michigan School of Information … Insert new Contributors and Translators here ...