Introduction to computational thinkingModule 9 : Composite TypesAsst Prof Michael LeesOffice: N4‐02c‐76email: mhlees[at]nt...
Contents1. What are Composite types/data structures2. Why are they important3. 4 common data structures in python (and the...
What is a Composite Type?• A data type which is constructed (composed) using primitive and other composite types.• New dat...
Data Structures• Data structures are particular ways of storing data to make some operation easier or more efficient. That...
Data StructuresRoughly two kinds of data structures:• Built‐in data structures ‐ data structures that are so common as to ...
Python Compositions• Python has a number of composite types to use:– Lists– Tuples– Dictionaries– Sets, Strings,…• Conveni...
LISTSModule 9: Composite TypesModule 9 : Composite Types 7
Python lists• An ordered sequence of items : simple!• We have already covered a type of sequence:–Strings are a sequence o...
Creating a list• As with all data structures, lists have a constructor. • Constructors have the same name as the data stru...
Creating ListsaList = list(‘abc’)aList  [‘a’, ‘b’, ‘c’]newList = [1, 3.14159, ‘a’,True]Module 9 : Composite Types 10
Similar to Strings• concatenate : + (but only of lists – not string + list)• repeat : *• indexing (the [ ] operator) lst[3...
Differences to Strings• Lists can contain a mixture of any python object (type); strings can only hold characters.l = [1,’...
List structureModule 9 : Composite Types 13
[]? Indexing on lists• [] means a list and also used to retrieve index.[‘a’, ‘b’, ‘c’][1] => ‘b’[0,1,2][0] => 0[0][0] => 0...
Lists of listsmyLst = [‘a’, [1, 2, 3], ‘z’]• What is the second element (index 1) of that list? • Another list:myLst[1][0]...
Operators[1, 2, 3] + [4]  [1, 2, 3, 4][1, 2, 3] * 2  [1, 2, 3, 1, 2, 3]1 in [1, 2, 3]  True[1, 2, 3] < [1, 2, 4]  True...
Some list functions• len(lst): Number of elements in list (top level). len([1, [1, 2], 3])  3• min(lst): Minimum element ...
Iterate on a listfor element in [1, [1, 2], ‘a’, True]:print(element)1[1, 2]‘a’TrueModule 9 : Composite Types 18
Mutable vs Immutable• mutability n : the quality of being capable of mutation.• Mutable : After creation can be changed• I...
Lists are mutable• Unlike strings, lists are mutable. You can change the object’s contents!myLst = [1, 2, 3]myLst[0] = 127...
List methods• Remember, a function is a small program (such as len()) that takes some arguments, the stuff in the parenthe...
List methods• A list is mutable and can change:myList[0]=‘a’ #index assignmentmyList.append(), myList.extend()myList.pop()...
Return values• Notice, when compared to string methods. Most of these methods do not return a value.• This is because list...
Warnings about resultsmyLst = [4, 7, 1, 2]myLst = myLst.sort()myLst  None #what happened?• What is the return value of my...
Split• The string method split generates a sequence of characters by splitting the string at certain split‐characters.• It...
Sorting• Only lists have a built‐in sorting method. Thus you often convert your data to a list if it needs sorting:myLst =...
Sorted Function• The sorted function will break a sequence into elements and sort the sequence, placing the results in a l...
COMPOSITE TYPESPIMITIVE TYPESTypes and terminologyModule 9 : Composite Types 28intlongfloatcomplex• Everything in python i...
How do I know?dir(object)– will return all methods that the object can usePython reference:all functions: http://docs.pyth...
CHALLENGE 9.1 – Checking anagramsGiven two words print ‘YES’ if they are an anagram and ‘NO’ if not.Module 9 : Composite T...
Thought process• Can iterate through one string, check if each character is in the other? Careful here, once a character h...
a b c x y zd wOption OneModule 9 : Composite Types 321. take each letter in string one and add a ball to the basket of cor...
Option two• Computer science way.• Sort both strings.• Anagrams should be identical after sorting.• Just compare sorted ve...
w1 = ‘THE EYES’w2 = ‘THEY SEE’w1sorted = sorted(w1)w2sorted = sorted(w2)if w1sorted == w2sorted:print(‘YES’)else:print(‘NO...
TUPLESModule 9: Composite TypesModule 9 : Composite Types 35
Tuples• Tuples are easy: they are simply immutable lists.• They are designated with (,):myTuple = (1,’a’,3.14,True)Module ...
What’s the point?• The real question is, why have an immutable list, a tuple, as a separate type?• An immutable list gives...
Lists vs Tuples• Everything that works with a list works with a tuple except methods that modify the tuple.• Thus indexing...
Commas create tuples• For tuples, you can think of a comma as the operator that makes a tuple, where the ( ) simply acts a...
A SIDE : DATA STRUCTURES IN GENERALModule 9: Composite TypesModule 9 : Composite Types 40
Data structures in general • Strings, lists and tuples…• Each is an organization of data is some specific way. The organiz...
LIST COMPREHENSIONModule 9: Composite TypesModule 9 : Composite Types 42
Lists are IMPORTANT• The use of lists in Python is a major part of its power. • Lists are very useful and can be used to a...
Constructing lists• List comprehension : syntactic structure for concise construction of lists from existing lists.[n for ...
Other examples[ n**2 for n in range(1,6)] => ?[x+y for x in range(1,4) for y in range (1,4)] =>?[c for c in “Hi There Mom”...
DICTIONARIESModule 9: Composite TypesModule 9 : Composite Types 46
What is a dictionary?• In data structure terms, a dictionary is better termed an associative array or associative list or ...
<Key=>Value>• The key acts as a “lookup” to find the associated value.• Just like a dictionary, you look up a word by its ...
Python Dictionary• Use the { } marker to create a dictionary• Use the : marker to indicate key:value pairs:contacts= {‘bil...
Module 9 : Composite Types 50
What are Keys and Values• Key must be immutable (think about why?)– strings, integers, tuples are fine– lists are NOT• Val...
Collections vs Sequence• Dictionaries are collections, but they are not sequences like lists, strings or tuples:– there is...
Access dictionaryAccess requires [ ], but the key is the index!myDict={}– an empty dictionarymyDict[‘bill’]=25– added the ...
Dictionaries are mutable• Like lists, dictionaries are a mutable data structure:– you can change the object via various op...
Familiar operatorsLike others, dictionaries respond to these:• len(myDict)– number of key:value pairs in the dictionary• e...
Other methods and operations• myDict.items() – all the key/value pairs• myDict.keys() – all the keys• myDict.values() – al...
Iterating on dictionaryfor key in myDict:print(key)– prints all the keysfor key,value in myDict.items():print(key, value)–...
View Objects• Notice the return type of:– myDict.items() – dict_items– myDict.keys() – dict_keys– myDict.values() – dict_v...
Quick construction of dictionary• zip creates pairs from two parallel lists:– zip(“abc”,[1,2,3]) creates a zip object• Tha...
Challenge 9.2 : Music collection storageDesign a data structure for storing someone’s music collection. For each piece of ...
Thought process• What are you options:– list, tuple, dictionary• How will the data be used/changed? What’s a logical way f...
Challenge 9.3 : Adding Album detailsExtend 9.2 so that instead of just the album name, we create another data structure to...
Thought process• Data for album:– Title– [songTitle1, songTitle2,…]• How will the data be used/changed? What’s a logical w...
SETSModule 9: Composite TypesModule 9 : Composite Types 64
What is a set?• Mathematical?–collection of objects–No two elements are the same (all items unique)–There is no order.–Set...
Creating a setmySet = set(“abcd”)• set constructor creates a set• The single argument must be an iterable. Iterable is som...
Duplicates??mySet = set([1,1,1,2,2,2,3,3,3])#List as input• Automatically removed when added or created:print(mySet)set([1...
Familiar operatorsMost data structures respond to these:• len(mySet)– the number of elements in a set• element in mySet– b...
Set specific operators• Set data structure contains things you might expectmySet=set(“abcd”); newSet=set(“cdef”)Module 9 :...
Others• setA.difference(setB): – Things in setA not in setB• setA.union(setB): – Things in setA or setB• setA.symmetric_di...
Take home lessons• What is a data structure, what does it do? Why? IMPORTANT FOR FUTURE• 4 data structures:– List, Tuple, ...
Further reading• http://www.youtube.com/watch?v=EPYupizJYQI• http://code.google.com/edu/languages/google‐python‐class/list...
Upcoming SlideShare
Loading in …5
×

Lecture 9 composite types

574 views

Published on

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
574
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
14
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Lecture 9 composite types

  1. 1. Introduction to computational thinkingModule 9 : Composite TypesAsst Prof Michael LeesOffice: N4‐02c‐76email: mhlees[at]ntu.edu.sgModule 9 : Composite Types 1
  2. 2. Contents1. What are Composite types/data structures2. Why are they important3. 4 common data structures in python (and their operations)– Lists– Tuples– Dictionaries– SetsModule 9 : Composite TypesChapter 7& Chapter 92
  3. 3. What is a Composite Type?• A data type which is constructed (composed) using primitive and other composite types.• New data  types made from existing onesModule 9 : Composite Types 3
  4. 4. Data Structures• Data structures are particular ways of storing data to make some operation easier or more efficient. That is, they are tunedfor certain tasks.• Data structures are suited to solving certain problems, and they are often associated with algorithms.Module 9 : Composite Typesvs.4
  5. 5. Data StructuresRoughly two kinds of data structures:• Built‐in data structures ‐ data structures that are so common as to be provided by default.• User‐defined data structures  ‐ (classes in object oriented programming) designed for a particular task. (Later courses)Module 9 : Composite Types 5
  6. 6. Python Compositions• Python has a number of composite types to use:– Lists– Tuples– Dictionaries– Sets, Strings,…• Convenient and efficient ways for us to store data.– All 1’s and 0’s underneath.– Course on data structures will cover how to implement.Module 9 : Composite Types 6
  7. 7. LISTSModule 9: Composite TypesModule 9 : Composite Types 7
  8. 8. Python lists• An ordered sequence of items : simple!• We have already covered a type of sequence:–Strings are a sequence of…?Module 9 : Composite Types 8
  9. 9. Creating a list• As with all data structures, lists have a constructor. • Constructors have the same name as the data structure: l=list(arg) or l=list()• Can take an iterable data structure as an argument, which adds each item of arg to the constructed list l.• It also has a shortcut: the use of square brackets [ ] to indicate explicit items: l = []Module 9 : Composite Types 9
  10. 10. Creating ListsaList = list(‘abc’)aList  [‘a’, ‘b’, ‘c’]newList = [1, 3.14159, ‘a’,True]Module 9 : Composite Types 10
  11. 11. Similar to Strings• concatenate : + (but only of lists – not string + list)• repeat : *• indexing (the [ ] operator) lst[3] => 4th item in list• slicing ([:])• membership (the in operator) • length (the len operator)Module 9 : Composite Types 11
  12. 12. Differences to Strings• Lists can contain a mixture of any python object (type); strings can only hold characters.l = [1,’bill’,1.2345, True]• Lists are mutable; their values can be changed while strings are immutable.• Lists are designated with [ ], with elements separated by commas; strings use “”.Module 9 : Composite Types 12
  13. 13. List structureModule 9 : Composite Types 13
  14. 14. []? Indexing on lists• [] means a list and also used to retrieve index.[‘a’, ‘b’, ‘c’][1] => ‘b’[0,1,2][0] => 0[0][0] => 0• Context is important. Index is always at the end of an expression and is preceded by something (variable, sequence).Module 9 : Composite Types 14
  15. 15. Lists of listsmyLst = [‘a’, [1, 2, 3], ‘z’]• What is the second element (index 1) of that list? • Another list:myLst[1][0] #apply left to rightmyLst[1] => [1, 2, 3][1, 2, 3][0] => 1[1, [2,[3,4]], 5][1][1][0]=>?Module 9 : Composite Types 15
  16. 16. Operators[1, 2, 3] + [4]  [1, 2, 3, 4][1, 2, 3] * 2  [1, 2, 3, 1, 2, 3]1 in [1, 2, 3]  True[1, 2, 3] < [1, 2, 4]  TrueCompare index to index, the first difference determines the result. As with strings.Module 9 : Composite Types 16
  17. 17. Some list functions• len(lst): Number of elements in list (top level). len([1, [1, 2], 3])  3• min(lst): Minimum element in the list. If list of lists, looks at first element of each list.• max(lst): Max element in the list.• sum(lst): Sum the elements, numeric only. Module 9 : Composite Types 17
  18. 18. Iterate on a listfor element in [1, [1, 2], ‘a’, True]:print(element)1[1, 2]‘a’TrueModule 9 : Composite Types 18
  19. 19. Mutable vs Immutable• mutability n : the quality of being capable of mutation.• Mutable : After creation can be changed• Immutable : After creation can’t be changed• Lists are mutable• Strings are immutablemyStr = ‘abc’myStr[0] = ‘z’ #Not possiblenewStr= myStr.replace(‘a’, ‘z’) #makea new stringModule 9 : Composite Types 19
  20. 20. Lists are mutable• Unlike strings, lists are mutable. You can change the object’s contents!myLst = [1, 2, 3]myLst[0] = 127print(myLst)  [127, 2, 3]Module 9 : Composite Types 20
  21. 21. List methods• Remember, a function is a small program (such as len()) that takes some arguments, the stuff in the parenthesis, and returns some value.• A method is called in a special way, the “dot call”. It is called in the context of an object (or a variable holding an object).Module 9 : Composite Types 21
  22. 22. List methods• A list is mutable and can change:myList[0]=‘a’ #index assignmentmyList.append(), myList.extend()myList.pop()myList.insert(), myList.remove()myList.sort()myList.reverse()Module 9 : Composite Types 22
  23. 23. Return values• Notice, when compared to string methods. Most of these methods do not return a value.• This is because lists are mutable so the methods modify the list directly; there is no need to return a new list.• This can be confusing.• Remember the python standard is your friend!Module 9 : Composite Types 23
  24. 24. Warnings about resultsmyLst = [4, 7, 1, 2]myLst = myLst.sort()myLst  None #what happened?• What is the return value of myLst.sort()?• Be careful what you are assigning!Module 9 : Composite Types 24
  25. 25. Split• The string method split generates a sequence of characters by splitting the string at certain split‐characters.• It, too, returns a list:splitLst = ‘this is a test’.split()splitLst [‘this’, ‘is’, ‘a’, ‘test’]Module 9 : Composite Types 25
  26. 26. Sorting• Only lists have a built‐in sorting method. Thus you often convert your data to a list if it needs sorting:myLst = list(‘xyzabc’) #iterable toconstructormyLst  [‘x’,’y’,’z’,’a’,’b’,’c’]myLst.sort()# convert back to a stringsortStr = ‘’.join(myLst) ‘abcxyz’Module 9 : Composite Types 26
  27. 27. Sorted Function• The sorted function will break a sequence into elements and sort the sequence, placing the results in a list:aStr = ‘hi mom’sortLst = sorted(aStr) [‘ ‘,’h’,’i’,’m’,’m’,’o’]Module 9 : Composite Types 27
  28. 28. COMPOSITE TYPESPIMITIVE TYPESTypes and terminologyModule 9 : Composite Types 28intlongfloatcomplex• Everything in python is an object of a certain typestringlistfunction is called without . chr(34) len(“astring”)method is called on an object using .dictionarytuple setaList.sort() newString = aString.split(‘a’)methods can take argumentsmutable
  29. 29. How do I know?dir(object)– will return all methods that the object can usePython reference:all functions: http://docs.python.org/library/functions.htmlall built in types (including methods)http://docs.python.org/library/stdtypes.html#Module 9 : Composite Types 29
  30. 30. CHALLENGE 9.1 – Checking anagramsGiven two words print ‘YES’ if they are an anagram and ‘NO’ if not.Module 9 : Composite Types 30
  31. 31. Thought process• Can iterate through one string, check if each character is in the other? Careful here, once a character has been matched we should remove it.• If we have two characters the same this can be complicatedModule 9 : Composite Types 31
  32. 32. a b c x y zd wOption OneModule 9 : Composite Types 321. take each letter in string one and add a ball to the basket of corresponding letter2. take each letter in string two and remove a ball from the corresponding basketIf at the end our baskets are all empty, then we have an anagram“cdxc”“dccx”
  33. 33. Option two• Computer science way.• Sort both strings.• Anagrams should be identical after sorting.• Just compare sorted versions.Module 9 : Composite Types 33
  34. 34. w1 = ‘THE EYES’w2 = ‘THEY SEE’w1sorted = sorted(w1)w2sorted = sorted(w2)if w1sorted == w2sorted:print(‘YES’)else:print(‘NO’)Module 9 : Composite Types 34
  35. 35. TUPLESModule 9: Composite TypesModule 9 : Composite Types 35
  36. 36. Tuples• Tuples are easy: they are simply immutable lists.• They are designated with (,):myTuple = (1,’a’,3.14,True)Module 9 : Composite Types 36
  37. 37. What’s the point?• The real question is, why have an immutable list, a tuple, as a separate type?• An immutable list gives you a data structure with some integrity, some permanency, if you will.• You know you cannot accidentally change one.Module 9 : Composite Types 37
  38. 38. Lists vs Tuples• Everything that works with a list works with a tuple except methods that modify the tuple.• Thus indexing, slicing, len, print all work as expected.• However, none of the mutable methods work: append, extend, del.Module 9 : Composite Types 38
  39. 39. Commas create tuples• For tuples, you can think of a comma as the operator that makes a tuple, where the ( ) simply acts as a grouping:myTuple = 1,2 # creates (1,2)myTuple = (1,) # creates (1)myTuple = (1) # creates 1 not (1)myTuple = 1, # creates (1)Module 9 : Composite Types 39
  40. 40. A SIDE : DATA STRUCTURES IN GENERALModule 9: Composite TypesModule 9 : Composite Types 40
  41. 41. Data structures in general • Strings, lists and tuples…• Each is an organization of data is some specific way. The organization is useful for particular tasks, makes things simpler. Choosing the right data structure for you program/algorithm is important.Module 9 : Composite Types 41
  42. 42. LIST COMPREHENSIONModule 9: Composite TypesModule 9 : Composite Types 42
  43. 43. Lists are IMPORTANT• The use of lists in Python is a major part of its power. • Lists are very useful and can be used to accomplish many tasks.• Therefore Python provides some pretty powerful support to make common list tasks easier.Module 9 : Composite Types 43
  44. 44. Constructing lists• List comprehension : syntactic structure for concise construction of lists from existing lists.[n for n in range(1,5)]Module 9 : Composite Types[ n for n in range(1,5)]mark the comp with [ ]what wecollectwhat we iteratethrough. Note thatwe iterate over a set of values and collect some(in this case all) of themreturns [1,2,3,4]44
  45. 45. Other examples[ n**2 for n in range(1,6)] => ?[x+y for x in range(1,4) for y in range (1,4)] =>?[c for c in “Hi There Mom” if c.isupper()]Module 9 : Composite TypesIt is as if we had done the following:myList = [ ]for x in range (1,4):for y in range (1,4):myList.append(x+y) [2,3,4,3,4,5,4,5,6]45
  46. 46. DICTIONARIESModule 9: Composite TypesModule 9 : Composite Types 46
  47. 47. What is a dictionary?• In data structure terms, a dictionary is better termed an associative array or associative list or a map.• You can think if it as a list of pairs, where the first element of the pair, the key, is used to retrieve the second element, the value.• Thus we map a key to a value.Module 9 : Composite Types 47
  48. 48. <Key=>Value>• The key acts as a “lookup” to find the associated value.• Just like a dictionary, you look up a word by its spelling to find the associated definition.• A dictionary can be searched to locate the value associated with a key.Module 9 : Composite Types 48
  49. 49. Python Dictionary• Use the { } marker to create a dictionary• Use the : marker to indicate key:value pairs:contacts= {‘bill’: ‘353-1234’,‘rich’: ‘269-1234’, ‘jane’: ‘352-1234’}print(contacts) =>{‘jane’: ‘352-1234’,‘bill’: ‘353-1234’,‘rich’: ‘369-1234’}Module 9 : Composite Types 49
  50. 50. Module 9 : Composite Types 50
  51. 51. What are Keys and Values• Key must be immutable (think about why?)– strings, integers, tuples are fine– lists are NOT• Value can be anything.Module 9 : Composite Types 51
  52. 52. Collections vs Sequence• Dictionaries are collections, but they are not sequences like lists, strings or tuples:– there is no order to the elements of a dictionary– in fact, the order (for example, when printed) might change as elements are added or deleted. • So how to access dictionary elements?Module 9 : Composite Types 52
  53. 53. Access dictionaryAccess requires [ ], but the key is the index!myDict={}– an empty dictionarymyDict[‘bill’]=25– added the pair ‘bill’:25print(myDict[‘bill’])– prints 25Module 9 : Composite Types 53
  54. 54. Dictionaries are mutable• Like lists, dictionaries are a mutable data structure:– you can change the object via various operations, such as index assignmentmyDict = {‘bill’:3, ‘rich’:10}print(myDict[‘bill’]) # prints 3myDict[‘bill’] = 100print(myDict[‘bill’]) # prints 100Module 9 : Composite Types 54
  55. 55. Familiar operatorsLike others, dictionaries respond to these:• len(myDict)– number of key:value pairs in the dictionary• element in myDict– boolean, is element a key in the dictionary• for key in myDict:– iterates through the keys of a dictionaryModule 9 : Composite Types 55
  56. 56. Other methods and operations• myDict.items() – all the key/value pairs• myDict.keys() – all the keys• myDict.values() – all the values• key in myDictdoes the key exist in the dictionary• myDict.clear() – empty the dictionary• myDict.update(yourDict) – for each key in yourDict, updates myDict with that key/value pairModule 9 : Composite Types 56
  57. 57. Iterating on dictionaryfor key in myDict:print(key)– prints all the keysfor key,value in myDict.items():print(key, value)– prints all the key/value pairsfor value in myDict.values():print(value)– prints all the valuesModule 9 : Composite Types 57
  58. 58. View Objects• Notice the return type of:– myDict.items() – dict_items– myDict.keys() – dict_keys– myDict.values() – dict_values• There are view objects (new to python 3)– view object is iterable (use in for loop)– order of view objects correspond!– view objects are dynamic, changing dictionary will update view!Module 9 : Composite Types 58
  59. 59. Quick construction of dictionary• zip creates pairs from two parallel lists:– zip(“abc”,[1,2,3]) creates a zip object• That’s good for building dictionaries. We call the dict function which takes a list of pairs to make a dictionary:– dict(zip(“abc”,[1,2,3])) yields– {a: 1, c: 3, b: 2}Module 9 : Composite Types 59
  60. 60. Challenge 9.2 : Music collection storageDesign a data structure for storing someone’s music collection. For each piece of music assume you have the following data: artist, title, album, genre.Create an example of the data structure.Module 9 : Composite Types 60
  61. 61. Thought process• What are you options:– list, tuple, dictionary• How will the data be used/changed? What’s a logical way for us to think about it?• Dictionary?• What is the key?Module 9 : Composite Types 61
  62. 62. Challenge 9.3 : Adding Album detailsExtend 9.2 so that instead of just the album name, we create another data structure to store album name and the songs on the albumModule 9 : Composite Types 62
  63. 63. Thought process• Data for album:– Title– [songTitle1, songTitle2,…]• How will the data be used/changed? What’s a logical way for us to think about it?• List?• How to modify 9.2Module 9 : Composite Types 63
  64. 64. SETSModule 9: Composite TypesModule 9 : Composite Types 64
  65. 65. What is a set?• Mathematical?–collection of objects–No two elements are the same (all items unique)–There is no order.–Set with no elements is the empty setModule 9 : Composite Types 65
  66. 66. Creating a setmySet = set(“abcd”)• set constructor creates a set• The single argument must be an iterable. Iterable is something that can be ‘walked’ through by for• Set is another data structure:print(mySet)set([‘a’,’b’,’c’,’d’])Module 9 : Composite Types 66
  67. 67. Duplicates??mySet = set([1,1,1,2,2,2,3,3,3])#List as input• Automatically removed when added or created:print(mySet)set([1,2,3])Module 9 : Composite Types 67
  68. 68. Familiar operatorsMost data structures respond to these:• len(mySet)– the number of elements in a set• element in mySet– boolean indicating whether element is in the set• for element in mySet:– iterate through the elements in mySetModule 9 : Composite Types 68
  69. 69. Set specific operators• Set data structure contains things you might expectmySet=set(“abcd”); newSet=set(“cdef”)Module 9 : Composite TypesmySet.intersection(newSet) returnsset([‘c’,’d’])e fa b c d69
  70. 70. Others• setA.difference(setB): – Things in setA not in setB• setA.union(setB): – Things in setA or setB• setA.symmetric_difference(setB)– Things in setA or setB, but not in both• Also subset, superset,… see library for moreModule 9 : Composite Types 70e fa b c de fa b c de fa b c dsetA SetBsetA SetBsetA SetB
  71. 71. Take home lessons• What is a data structure, what does it do? Why? IMPORTANT FOR FUTURE• 4 data structures:– List, Tuple, Dictionary, Set (what are they good for)• List comprehension – very powerful python tool• Think about ways to arrange data using these structures.Module 9 : Composite Types 71
  72. 72. Further reading• http://www.youtube.com/watch?v=EPYupizJYQI• http://code.google.com/edu/languages/google‐python‐class/lists.html• http://docs.python.org/tutorial/datastructures.html• http://docs.python.org/library/stdtypes.html#typesseqModule 9 : Composite Types 72

×