Lists, Tuples, Sets, Dicts 5/23/2015
List General purpose Most widely used data structure Grow and shrink size as needed Sequence type Sortable Tuple Immutable (can’t add/change) Useful for fixed data Faster than Lists Sequence type Set Store non-duplicate items Very fast access vs Lists Math Set ops (union, intersect) Unordered Dict Key/Value pairs Associative array, like Java HashMap Unordered
SEQUENCES (String, List, Tuple) β€’ indexing: x[6] β€’ slicing: x[1:4] β€’ adding/concatenating: + β€’ multiplying: * β€’ checking membership: in/not in β€’ iterating for i in x: β€’ len(sequence1) β€’ min(sequence1) β€’ max(sequence1) β€’ sum(sequence1[1:3]]) β€’ sorted(list1) β€’ sequence1.count(item) β€’ sequence1.index(item)
β€’ indexing – Access any item in the sequence using its index x = 'frog' print (x[3]) # prints 'g' String x = ['pig', 'cow', 'horse'] print (x[1]) # prints 'cow' List SEQUENCES String List Tuple
β€’ slicing – Slice out substrings, sublists, subtuples using indexes [start : end+1 : step] Code Result Explanation x[1:4] 'omp' Items 1 to 3 x[1:6:2] 'opt' Items 1, 3, 5 x[3:] 'puter' Items 3 to end x[:5] 'compu' Items 0 to 4 x[-1] 'r' Last item x[-3:] 'ter' Last 3 items x[:-2] 'comput' All except last 2 items x = 'computer' SEQUENCES String List Tuple
β€’ adding / concatenating – Combine 2 sequences of the same type using + x = 'horse' + 'shoe' print (x) # prints 'horseshoe' String x = ['pig', 'cow'] + ['horse'] print (x) # prints ['pig', 'cow', 'horse'] List SEQUENCES String List Tuple
β€’ multiplying – Multiply a sequence using * x = β€˜bug' * 3 print (x) # prints β€˜bugbugbug' String x = [8, 5] * 3 print (x) # prints [8, 5, 8, 5, 8, 5] List SEQUENCES String List Tuple
β€’ checking membership – Test whether an item is in or not in a sequence x = 'bug' print ('u' in x) # prints True String x = ['pig', 'cow', 'horse'] print ('cow' not in x) # prints False List SEQUENCES String List Tuple
β€’ iterating – Iterate through the items in a sequence x = [7, 8, 3] for item in x: print (item * 2) # prints 14, 16, 6 Item x = [7, 8, 3] for index, item in enumerate(x): print (index, item) # prints 0 7, 1 8, 2 3 Index & Item SEQUENCES String List Tuple
β€’ number of items – Count the number of items in a sequence x = 'bug' print (len(x)) # prints 3 String x = ['pig', 'cow', 'horse'] print (len(x)) # prints 3 List SEQUENCES String List Tuple
β€’ minimum – Find the minimum item in a sequence lexicographically – alpha or numeric types, but cannot mix types x = 'bug' print (min(x)) # prints 'b' String x = ['pig', 'cow', 'horse'] print (min(x)) # prints 'cow' List SEQUENCES String List Tuple
β€’ maximum – Find the maximum item in a sequence – alpha or numeric types, but cannot mix types x = 'bug' print (max(x)) # prints 'u' String x = ['pig', 'cow', 'horse'] print (max(x)) # prints 'pig' List SEQUENCES String List Tuple
β€’ sum – Find the sum of items in a sequence – entire sequence must be numeric type x = [5, 7, 'bugβ€˜] print (sum(x)) # error! String -> Error x = [2, 5, 8, 12] print (sum(x)) # prints 27 print (sum(x[-2:])) # prints 20 List SEQUENCES String List Tuple
β€’ sorting – Returns a new list of items in sorted order – Does not change the original list x = 'bug' print (sorted(x))# prints ['b', 'g', 'u'] String x = ['pig', 'cow', 'horse'] print (sorted(x)) # prints ['cow', 'horse', 'pig'] List SEQUENCES String List Tuple
β€’ count (item) – Returns count of an item x = 'hippo' print (x.count('p')) # prints 2 String x = ['pig', 'cow', 'horse', 'cow'] print (x.count('cow')) # prints 2 List SEQUENCES String List Tuple
β€’ index (item) – Returns the index of the first occurrence of an item x = 'hippo' print (x.index('p')) # prints 2 String x = ['pig', 'cow', 'horse', 'cow'] print (x.index('cow')) # prints 1 List SEQUENCES String List Tuple
β€’ unpacking – Unpack the n items of a sequence into n variables x = ['pig', 'cow', 'horse'] a, b, c = x # now a is 'pig' # b is 'cow', # c is 'horse' Note: The number of variables must exactly match the length of the list. SEQUENCES String List Tuple
LISTS All operations from Sequences, plus: β€’ constructors: β€’ del list1[2] delete item from list1 β€’ list1.append(item) appends an item to list1 β€’ list1.extend(sequence1) appends a sequence to list1 β€’ list1.insert(index, item) inserts item at index β€’ list1.pop() pops last item β€’ list1.remove(item) removes first instance of item β€’ list1.reverse() reverses list order β€’ list1.sort() sorts list in place LISTS
β€’ constructors – creating a new list LISTS x = list() x = ['a', 25, 'dog', 8.43] x = list(tuple1) List Comprehension: x = [m for m in range(8)] resulting list: [0, 1, 2, 3, 4, 5, 6, 7] x = [z**2 for z in range(10) if z>4] resulting list: [25, 36, 49, 64, 81]
β€’ delete – Delete a list or an item from a list x = [5, 3, 8, 6] del(x[1]) # [5, 8, 6] del(x) # deletes list x LISTS
β€’ append – Append an item to a list x = [5, 3, 8, 6] x.append(7) # [5, 3, 8, 6, 7] LISTS
β€’ extend – Append an sequence to a list x = [5, 3, 8, 6] y = [12, 13] x.extend(y) # [5, 3, 8, 6, 7, 12, 13] LISTS
β€’ insert – Insert an item at given index x.insert(index, item) x = [5, 3, 8, 6] x.insert(1, 7) # [5, 7, 3, 8, 6] x.insert(1,['a','m']) # [5, ['a', 'm'], 7, 3, 8, 6] LISTS
β€’ pop – Pops last item off the list, and returns item x = [5, 3, 8, 6] x.pop() # [5, 3, 8] # and returns the 6 print(x.pop()) # prints 8 # x is now [5, 3] LISTS
β€’ remove – Remove first instance of an item x = [5, 3, 8, 6, 3] x.remove(3) # [5, 8, 6, 3] LISTS
β€’ reverse – Reverse the order of the list x = [5, 3, 8, 6] x.reverse() # [6, 8, 3, 5] LISTS
β€’ sort – Sort the list in place x = [5, 3, 8, 6] x.sort() # [3, 5, 6, 8] Note: sorted(x) returns a new sorted list without changing the original list x. x.sort() puts the items of x in sorted order (sorts in place). LISTS
TUPLES β€’ Support all operations for Sequences β€’ Immutable, but member objects may be mutable β€’ If the contents of a list shouldn’t change, use a tuple to prevent items from accidently being added, changed or deleted β€’ Tuples are more efficient than lists due to Python’s implementation TUPLES
β€’ constructors – creating a new tuple TUPLES x = () # no-item tuple x = (1,2,3) x = 1, 2, 3 # parenthesis are optional x = 2, # single-item tuple x = tuple(list1) # tuple from list
β€’ immutable – But member objects may be mutable x = (1, 2, 3) del(x[1]) # error! x[1] = 8 # error! x = ([1,2], 3) # 2-item tuple: list and int del(x[0][1]) # ([1], 3) TUPLES
β€’ constructors – creating a new set SETS x = {3,5,3,5} # {5, 3} x = set() # empty set x = set(list1) # new set from list # strips duplicates Set Comprehension: x = {3*x for x in range(10) if x>5} resulting set: {18, 21, 24, 27} but in random order
SETS Description Code Add item to set x x.add(item) Remove item from set x x.remove(item) Get length of set x len(x) Check membership in x item in x item not in x Pop random item from set x x.pop() Delete all items from set x x.clear() β€’ basic set operations
β€’ standard mathematical set operations SETS Set Function Description Code Intersection AND set1 & set2 Union OR set1 | set2 Symmetric Difference XOR set1 ^ set2 Difference In set1 but not in set2 set1 – set2 Subset set2 contains set1 set1 <= set2 Superset set1 contains set2 set1 >= set2
β€’ constructors – creating a new dict DICTIONARIES x = {'pork':25.3, 'beef':33.8, 'chicken':22.7} x = dict([('pork', 25.3),('beef', 33.8),('chicken', 22.7)]) x = dict(pork=25.3, beef=33.8, chicken=22.7)
Description Code Add or change item in dict x x['beef'] = 25.2 Remove item from dict x del x['beef'] Get length of dict x len(x) Check membership in x (only looks in keys, not values) item in x item not in x Delete all items from dict x x.clear() Delete dict x del x β€’ basic dict operations DICTIONARIES
β€’ accessing keys and values in a dict DICTIONARIES x.keys() # returns list of keys in x x.values() # returns list of values in x x.items() # returns list of key-value tuple pairs in x item in x.values() # tests membership in x: returns boolean
β€’ iterating a dict DICTIONARIES for key in x: # iterate keys print(key, x[key]) # print all key/value pairs for k, v in x.items(): # iterate key/value pairs print(k, v) # print all key/value pairs Note: Entries in a dict are in random order.

Intro Python Data Structures.pptx Intro Python Data Structures.pptx

  • 1.
    Lists, Tuples, Sets,Dicts 5/23/2015
  • 2.
    List General purpose Most widelyused data structure Grow and shrink size as needed Sequence type Sortable Tuple Immutable (can’t add/change) Useful for fixed data Faster than Lists Sequence type Set Store non-duplicate items Very fast access vs Lists Math Set ops (union, intersect) Unordered Dict Key/Value pairs Associative array, like Java HashMap Unordered
  • 3.
    SEQUENCES (String, List,Tuple) β€’ indexing: x[6] β€’ slicing: x[1:4] β€’ adding/concatenating: + β€’ multiplying: * β€’ checking membership: in/not in β€’ iterating for i in x: β€’ len(sequence1) β€’ min(sequence1) β€’ max(sequence1) β€’ sum(sequence1[1:3]]) β€’ sorted(list1) β€’ sequence1.count(item) β€’ sequence1.index(item)
  • 4.
    β€’ indexing – Accessany item in the sequence using its index x = 'frog' print (x[3]) # prints 'g' String x = ['pig', 'cow', 'horse'] print (x[1]) # prints 'cow' List SEQUENCES String List Tuple
  • 5.
    β€’ slicing – Sliceout substrings, sublists, subtuples using indexes [start : end+1 : step] Code Result Explanation x[1:4] 'omp' Items 1 to 3 x[1:6:2] 'opt' Items 1, 3, 5 x[3:] 'puter' Items 3 to end x[:5] 'compu' Items 0 to 4 x[-1] 'r' Last item x[-3:] 'ter' Last 3 items x[:-2] 'comput' All except last 2 items x = 'computer' SEQUENCES String List Tuple
  • 6.
    β€’ adding /concatenating – Combine 2 sequences of the same type using + x = 'horse' + 'shoe' print (x) # prints 'horseshoe' String x = ['pig', 'cow'] + ['horse'] print (x) # prints ['pig', 'cow', 'horse'] List SEQUENCES String List Tuple
  • 7.
    β€’ multiplying – Multiplya sequence using * x = β€˜bug' * 3 print (x) # prints β€˜bugbugbug' String x = [8, 5] * 3 print (x) # prints [8, 5, 8, 5, 8, 5] List SEQUENCES String List Tuple
  • 8.
    β€’ checking membership –Test whether an item is in or not in a sequence x = 'bug' print ('u' in x) # prints True String x = ['pig', 'cow', 'horse'] print ('cow' not in x) # prints False List SEQUENCES String List Tuple
  • 9.
    β€’ iterating – Iteratethrough the items in a sequence x = [7, 8, 3] for item in x: print (item * 2) # prints 14, 16, 6 Item x = [7, 8, 3] for index, item in enumerate(x): print (index, item) # prints 0 7, 1 8, 2 3 Index & Item SEQUENCES String List Tuple
  • 10.
    β€’ number ofitems – Count the number of items in a sequence x = 'bug' print (len(x)) # prints 3 String x = ['pig', 'cow', 'horse'] print (len(x)) # prints 3 List SEQUENCES String List Tuple
  • 11.
    β€’ minimum – Findthe minimum item in a sequence lexicographically – alpha or numeric types, but cannot mix types x = 'bug' print (min(x)) # prints 'b' String x = ['pig', 'cow', 'horse'] print (min(x)) # prints 'cow' List SEQUENCES String List Tuple
  • 12.
    β€’ maximum – Findthe maximum item in a sequence – alpha or numeric types, but cannot mix types x = 'bug' print (max(x)) # prints 'u' String x = ['pig', 'cow', 'horse'] print (max(x)) # prints 'pig' List SEQUENCES String List Tuple
  • 13.
    β€’ sum – Findthe sum of items in a sequence – entire sequence must be numeric type x = [5, 7, 'bugβ€˜] print (sum(x)) # error! String -> Error x = [2, 5, 8, 12] print (sum(x)) # prints 27 print (sum(x[-2:])) # prints 20 List SEQUENCES String List Tuple
  • 14.
    β€’ sorting – Returnsa new list of items in sorted order – Does not change the original list x = 'bug' print (sorted(x))# prints ['b', 'g', 'u'] String x = ['pig', 'cow', 'horse'] print (sorted(x)) # prints ['cow', 'horse', 'pig'] List SEQUENCES String List Tuple
  • 15.
    β€’ count (item) –Returns count of an item x = 'hippo' print (x.count('p')) # prints 2 String x = ['pig', 'cow', 'horse', 'cow'] print (x.count('cow')) # prints 2 List SEQUENCES String List Tuple
  • 16.
    β€’ index (item) –Returns the index of the first occurrence of an item x = 'hippo' print (x.index('p')) # prints 2 String x = ['pig', 'cow', 'horse', 'cow'] print (x.index('cow')) # prints 1 List SEQUENCES String List Tuple
  • 17.
    β€’ unpacking – Unpackthe n items of a sequence into n variables x = ['pig', 'cow', 'horse'] a, b, c = x # now a is 'pig' # b is 'cow', # c is 'horse' Note: The number of variables must exactly match the length of the list. SEQUENCES String List Tuple
  • 18.
    LISTS All operations fromSequences, plus: β€’ constructors: β€’ del list1[2] delete item from list1 β€’ list1.append(item) appends an item to list1 β€’ list1.extend(sequence1) appends a sequence to list1 β€’ list1.insert(index, item) inserts item at index β€’ list1.pop() pops last item β€’ list1.remove(item) removes first instance of item β€’ list1.reverse() reverses list order β€’ list1.sort() sorts list in place LISTS
  • 19.
    β€’ constructors –creating a new list LISTS x = list() x = ['a', 25, 'dog', 8.43] x = list(tuple1) List Comprehension: x = [m for m in range(8)] resulting list: [0, 1, 2, 3, 4, 5, 6, 7] x = [z**2 for z in range(10) if z>4] resulting list: [25, 36, 49, 64, 81]
  • 20.
    β€’ delete – Deletea list or an item from a list x = [5, 3, 8, 6] del(x[1]) # [5, 8, 6] del(x) # deletes list x LISTS
  • 21.
    β€’ append – Appendan item to a list x = [5, 3, 8, 6] x.append(7) # [5, 3, 8, 6, 7] LISTS
  • 22.
    β€’ extend – Appendan sequence to a list x = [5, 3, 8, 6] y = [12, 13] x.extend(y) # [5, 3, 8, 6, 7, 12, 13] LISTS
  • 23.
    β€’ insert – Insertan item at given index x.insert(index, item) x = [5, 3, 8, 6] x.insert(1, 7) # [5, 7, 3, 8, 6] x.insert(1,['a','m']) # [5, ['a', 'm'], 7, 3, 8, 6] LISTS
  • 24.
    β€’ pop – Popslast item off the list, and returns item x = [5, 3, 8, 6] x.pop() # [5, 3, 8] # and returns the 6 print(x.pop()) # prints 8 # x is now [5, 3] LISTS
  • 25.
    β€’ remove – Removefirst instance of an item x = [5, 3, 8, 6, 3] x.remove(3) # [5, 8, 6, 3] LISTS
  • 26.
    β€’ reverse – Reversethe order of the list x = [5, 3, 8, 6] x.reverse() # [6, 8, 3, 5] LISTS
  • 27.
    β€’ sort – Sortthe list in place x = [5, 3, 8, 6] x.sort() # [3, 5, 6, 8] Note: sorted(x) returns a new sorted list without changing the original list x. x.sort() puts the items of x in sorted order (sorts in place). LISTS
  • 28.
    TUPLES β€’ Support alloperations for Sequences β€’ Immutable, but member objects may be mutable β€’ If the contents of a list shouldn’t change, use a tuple to prevent items from accidently being added, changed or deleted β€’ Tuples are more efficient than lists due to Python’s implementation TUPLES
  • 29.
    β€’ constructors –creating a new tuple TUPLES x = () # no-item tuple x = (1,2,3) x = 1, 2, 3 # parenthesis are optional x = 2, # single-item tuple x = tuple(list1) # tuple from list
  • 30.
    β€’ immutable – Butmember objects may be mutable x = (1, 2, 3) del(x[1]) # error! x[1] = 8 # error! x = ([1,2], 3) # 2-item tuple: list and int del(x[0][1]) # ([1], 3) TUPLES
  • 31.
    β€’ constructors –creating a new set SETS x = {3,5,3,5} # {5, 3} x = set() # empty set x = set(list1) # new set from list # strips duplicates Set Comprehension: x = {3*x for x in range(10) if x>5} resulting set: {18, 21, 24, 27} but in random order
  • 32.
    SETS Description Code Add itemto set x x.add(item) Remove item from set x x.remove(item) Get length of set x len(x) Check membership in x item in x item not in x Pop random item from set x x.pop() Delete all items from set x x.clear() β€’ basic set operations
  • 33.
    β€’ standard mathematicalset operations SETS Set Function Description Code Intersection AND set1 & set2 Union OR set1 | set2 Symmetric Difference XOR set1 ^ set2 Difference In set1 but not in set2 set1 – set2 Subset set2 contains set1 set1 <= set2 Superset set1 contains set2 set1 >= set2
  • 34.
    β€’ constructors –creating a new dict DICTIONARIES x = {'pork':25.3, 'beef':33.8, 'chicken':22.7} x = dict([('pork', 25.3),('beef', 33.8),('chicken', 22.7)]) x = dict(pork=25.3, beef=33.8, chicken=22.7)
  • 35.
    Description Code Add orchange item in dict x x['beef'] = 25.2 Remove item from dict x del x['beef'] Get length of dict x len(x) Check membership in x (only looks in keys, not values) item in x item not in x Delete all items from dict x x.clear() Delete dict x del x β€’ basic dict operations DICTIONARIES
  • 36.
    β€’ accessing keysand values in a dict DICTIONARIES x.keys() # returns list of keys in x x.values() # returns list of values in x x.items() # returns list of key-value tuple pairs in x item in x.values() # tests membership in x: returns boolean
  • 37.
    β€’ iterating adict DICTIONARIES for key in x: # iterate keys print(key, x[key]) # print all key/value pairs for k, v in x.items(): # iterate key/value pairs print(k, v) # print all key/value pairs Note: Entries in a dict are in random order.