CompSci 101 Introduction to Computer Science March 24, 2016 Prof. Rodger compsci 101, spring 20161.

Slides:



Advertisements
Similar presentations
CompSci 101 Introduction to Computer Science February 3, 2015 Prof. Rodger Lecture given by Elizabeth Dowd.
Advertisements

CompSci 101 Introduction to Computer Science Feb 26, 2015 Prof. Rodger.
 1 String and Data Processing. Sequential Processing Processing each element in a sequence for e in [1,2,3,4]: print e for c in “hello”: print c for.
CompSci 101 Introduction to Computer Science January 13, 2015 Prof. Rodger compsci 101 spring
CompSci 101 Introduction to Computer Science January 20, 2015 Prof. Rodger compsci 101, spring
Introduction. 2COMPSCI Computer Science Fundamentals.
CompSci Maps  Maps are another way of organizing data  Keys and Values  Each key maps to a value  Some keys can map to the same value  Can.
CompSci 6 Introduction to Computer Science October 20, 2011 Prof. Rodger.
CompSci 101 Introduction to Computer Science September 23, 2014 Prof. Rodger.
CompSci 101 Introduction to Computer Science Sept. 9, 2014 Prof. Rodger President Brodhead speech graduation 2010 CompSci 101 Fall
CompSci 6 Introduction to Computer Science November 1, 2011 Prof. Rodger.
Data Collections: Lists CSC 161: The Art of Programming Prof. Henry Kautz 11/2/2009.
Compsci 06/101, Fall What's ahead in Compsci 6/101? l Software architecture and design, why Jotto has modules and how communication works  We.
CompSci 6 Introduction to Computer Science Sept 29, 2011 Prof. Rodger “All your troubles are due to those ‘ifs’,” declared the Wizard. If you were not.
CompSci 6 Introduction to Computer Science November 8, 2011 Prof. Rodger.
CompSci 101 Introduction to Computer Science March 3, 2015 Prof. Rodger compsci101 spring151.
Tuples and Dictionaries Intro to Computer Science CS1510, Section 2 Dr. Sarah Diesburg.
CompSci 6 Introduction to Computer Science September 13, 2011 Prof. Rodger.
14. DICTIONARIES AND SETS Rocky K. C. Chang 17 November 2014 (Based on from Charles Dierbach, Introduction to Computer Science Using Python and Punch and.
CompSci 101 Introduction to Computer Science March 31, 2015 Prof. Rodger Thanks to Elizabeth Dowd for giving this lecture Review for exam.
Compsci 101.2, Fall Plan for October 29 l Review dictionaries and their use  Very efficient, easy to use  Efficiency doesn't matter much for.
CompSci 101 Introduction to Computer Science February 10, 2015 Prof. Rodger “All your troubles are due to those ‘ifs’,” declared the Wizard. If you were.
Compsci 101.2, Fall Plan for eleven-four l Thinking about APTs and test problems  How do you choose: list, string, set, dictionary  Experience?
CompSci 101 Introduction to Computer Science January 28, 2016 Prof. Rodger compsci101 spring161.
Compsci 101.2, Fall Plan for October l Structuring Data and Code for Efficiency  Computer time, how expensive is it?  Data storage, how.
CompSci 101 Introduction to Computer Science February 4, 2016 Prof. Rodger compsci101 spring161.
Dictionaries Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See
Dictionaries Intro to Computer Science CS 1510 Dr. Sarah Diesburg.
CompSci 101 Introduction to Computer Science Feb 24, 2015 Prof. Rodger.
CompSci 6 Introduction to Computer Science Sept. 20, 2011 Prof. Rodger CompSci 6 Fall
CompSci 101 Introduction to Computer Science February 11, 2016 Prof. Rodger.
Compsci 06/101, Spring This week in Compsci 6/101 l From sets to dictionaries  Incredibly powerful in solving problems  Power in Perl, Python,
CompSci 101 Introduction to Computer Science January 26, 2016 Prof. Rodger compsci 101, spring
CompSci 101 Introduction to Computer Science November 11, 2014 Prof. Rodger CompSci 101 Fall Review for exam.
CompSci 101 Introduction to Computer Science March 17, 2015 Prof. Rodger compsci 101, spring
CompSci 101 Introduction to Computer Science February 25, 2016 Prof. Rodger compsci101 spring20161.
CompSci 6 Introduction to Computer Science September 27, 2011 Prof. Rodger CompSci 6 Fall
CompSci 101 Introduction to Computer Science April 7, 2015 Prof. Rodger.
Dictionaries Alexandra Stefan CSE1310 – University of Texas at Arlington.
Lists/Dictionaries. What we are covering Data structure basics Lists Dictionaries Json.
CompSci 101 Introduction to Computer Science March 8, 2016 Prof. Rodger.
CompSci 101 Introduction to Computer Science April 14, 2016 Prof. Rodger Lecture today by Sriram Vepuri.
CompSci 101 Introduction to Computer Science March 1, 2016 Prof. Rodger.
CompSci 101 Introduction to Computer Science April 14, 2016 Prof. Rodger compsci101 spring161.
CompSci 101 Introduction to Computer Science March 29, 2016 Prof. Rodger.
CompSci 101 Introduction to Computer Science February 5, 2015 Prof. Rodger Lecture given by Elizabeth Dowd compsci101 spring151.
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 6 Introduction to Computer Science
Department of Computer Science,
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
Introduction to Computer Science
CompSci 101 Introduction to Computer Science
CompSci 101 Introduction to Computer Science
Recitation Outline C++ STL associative containers Examples
Introduction to Dictionaries
6. Dictionaries and sets Rocky K. C. Chang 18 October 2018
CompSci 101 Introduction to Computer Science
Introduction to Computer Science
CompSci 101 Introduction to Computer Science
Presentation transcript:

CompSci 101 Introduction to Computer Science March 24, 2016 Prof. Rodger compsci 101, spring 20161

Announcements Reading and RQ 15 due next time Assignment 6 out today APT 7 due today, APT 8 due Tuesday APT Quiz 2 – 6pm Sunday-10pm Tuesday –Pick 2 hours to take it Today: –Finish from last time –Dictionaries – a way to organize data for fast lookup compsci 101, spring 20162

LAST TIME: Problem: Popular Name Given a list of names, determine the most popular first name and print that name with all of its last names. Input: Names are always two words, names are in a file. If multiple names are on the same line they are separated by a “:” Output: Most popular first name, followed by a “:”, followed by corresponding last names separated by a blank compsci 101, spring 20163

Example Input File with 5 lines Susan Smith:Jackie Long:Mary White Susan Brandt Jackie Johnson:Susan Rodger:Mary Rodger Eric Long:Susan Crackers:Mary Velios Jack Frost:Eric Lund Corresponding Output Susan: Smith Brandt Rodger Crackers compsci 101, spring 20164

Example – two lists ’Susan’’ ‘Jackie’ ‘Jack’ ‘Eric’ ‘Mary’ [ ‘Smith’,‘Brandt’,‘Rodger’,‘Crackers’]’ [ ‘Long’, ‘Johnson’]’ [ ‘White’,’Rodger’,’Velios’]’ [ ‘Long’, ‘Lund’]’ [ ‘Frost’]’ firstNames lastNames compsci 101, spring 20165

Now can we solve the problem? Compute those two lists that are associated with each other –List of unique first names –List of corresponding last names Compute the max list of last names Now easy to print the answer. See popular.py compsci 101, spring 20166

def correspondingLastNames(data, firstNames): lastNames = [ ] for name in firstNames: lastNames.append(allLastNames(data,name)) return lastNames This function generates the list of lists of corresponding last names compsci 101, spring 20167

Answer questions about bit.ly/101sp Printing first names with corresponding last names Reading data from files compsci 101, spring 20168

Finish maxnum = max([len(item) for item in lastNames]) print maxnum lastIndex = [index for (index, v) in enumerate(lastNames) if len(v) == maxnum] print "first name with most last names is:" compsci 101, spring 20169

Expanding the Problem Suppose we want to read from multiple data files names1.txt, names2.txt, names3.txt See processFiles in popular.py compsci 101, spring

Another way – list of lists [ ‘Susan’, ‘Smith’,‘Brandt’,‘Rodger’,‘Crackers’]’ [‘Jackie’, ‘Long’, ‘Johnson’]’ [‘Mary’, ‘White’,’Rodger’,’Velios’]’ [ ‘Eric’, ‘Long’, ‘Lund’]’ [ ‘Jack’, ‘Frost’]’ First word in each list is a first name The rest are last names. compsci 101, spring

ACM Turing Award Winners 2015 compsci 101, spring

Dictionaries/Maps Dictionaries/maps are another way of organizing data Keys and Values –Each key maps to a value –Some keys can map to the same value –Can change the value a key maps to compsci 101, spring

Example Each student could be mapped to their favorite ice cream flavor compsci 101, spring

How is dictionary different than a list? List – have to search for name first Dictionary – each key maps to a value getting name (or key) is automatic! Fast! compsci 101, spring Values Keys

Implementing a Dictionary/Map Keys map to values Create Empty dictionary somemap = {} Put in a key and its value somemap[“Forbes”] = “Strawberry” Get a value for a dictionary value = somemap[“Forbes”] OR value = somemap.get(“Forbes”, “default”) Change a value for a dictionary somemap[“Forbes’] = “Chocolate” compsci 101, spring

More on using a Dictionary/Map Get all the keys (as a list) – listKeys = somemap.keys() Get all the values (as a list) – listValues = somemap.values() Other methods – clear – empty dictionary – items – return (key,value) pairs – iteritems – return (key,value) pairs more efficiently, iterator – must use with for – update – update with another dictionary compsci 101, spring

Change Astrachan’s value somemap[“Astrachan”] = Coffee Mocha compsci 101, spring

Change Astrachan’s value somemap[“Astrachan”] = Coffee Mocha compsci 101, spring

Value could be a set or list 20

Back to Popular Name Problem: Given a list of names, determine the most popular first name and print that name with all of its last names. Input: Names are always two words, names are in a file. If multiple names are on the same line they are separated by a “:” Output: Most popular first name, followed by a “:”, followed by corresponding last names separated by a blank compsci 101, spring

Example Input File with 5 lines Susan Smith:Jackie Long:Mary White Susan Brandt Jackie Johnson:Susan Rodger:Mary Rodger Eric Long:Susan Crackers:Mary Velios Jack Frost:Eric Lund Corresponding Output Susan: Smith Brandt Rodger Crackers compsci 101, spring

Use a dictionary/map Map first names to count of corresponding last names def mapNameToNumberLastNames(data): Use a dictionary/map popularMap.py compsci 101, spring

Trace example with Python Tutor see popularMapSolnSmall.py 24compsci 101, spring 2016

Use a dictionary/map Map first name to list of corresponding last names def mapNameToLastNames(data): compsci 101, spring

Trace through example with Python Tutor See the small example popularMapSoln2Small.py compsci 101, spring

Use a dictionary/map Map first name to set of corresponding last names def mapNameToSetLastNames(data): compsci 101, spring

Compare Using two parallel lists? Using one dictionary/map Which dictionary is most useful to solve the most popular name problem? compsci 101, spring