Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """Utilities for Maps"""
- from math import sqrt
- from random import sample
- # Rename the built-in zip (http://docs.python.org/3/library/functions.html#zip)
- _zip = zip
- def map_and_filter(s, map_fn, filter_fn):
- """Return a new list containing the result of calling map_fn on each
- element of sequence s for which filter_fn returns a true value.
- >>> square = lambda x: x * x
- >>> is_odd = lambda x: x % 2 == 1
- >>> map_and_filter([1, 2, 3, 4, 5], square, is_odd)
- [1, 9, 25]
- """
- # BEGIN Question 0
- "*** REPLACE THIS LINE ***"
- return ['REPLACE THIS WITH YOUR LIST COMPREHENSION']
- # END Question 0
- def key_of_min_value(d):
- """Returns the key in dict d that corresponds to the minimum value of d.
- >>> letters = {'a': 6, 'b': 5, 'c': 4, 'd': 5}
- >>> min(letters)
- 'a'
- >>> key_of_min_value(letters)
- 'c'
- """
- # BEGIN Question 0
- "*** REPLACE THIS LINE ***"
- return min('REPLACE THIS WITH YOUR SOLUTION')
- # END Question 0
- def zip(*sequences):
- """Returns a list of lists, where the i-th list contains the i-th
- element from each of the argument sequences.
- >>> zip(range(0, 3), range(3, 6))
- [[0, 3], [1, 4], [2, 5]]
- >>> for a, b in zip([1, 2, 3], [4, 5, 6]):
- ... print(a, b)
- 1 4
- 2 5
- 3 6
- >>> for triple in zip(['a', 'b', 'c'], [1, 2, 3], ['do', 're', 'mi']):
- ... print(triple)
- ['a', 1, 'do']
- ['b', 2, 're']
- ['c', 3, 'mi']
- """
- return list(map(list, _zip(*sequences)))
- def enumerate(s, start=0):
- """Returns a list of lists, where the i-th list contains i+start and the
- i-th element of s.
- >>> enumerate([6, 1, 'a'])
- [[0, 6], [1, 1], [2, 'a']]
- >>> enumerate('five', 5)
- [[5, 'f'], [6, 'i'], [7, 'v'], [8, 'e']]
- """
- # BEGIN Question 0
- "*** REPLACE THIS LINE ***"
- # END Question 0
- def distance(pos1, pos2):
- """Return the Euclidean distance between pos1 and pos2, which are pairs.
- >>> distance([1, 2], [4, 6])
- 5.0
- """
- return sqrt((pos1[0] - pos2[0]) ** 2 + (pos1[1] - pos2[1]) ** 2)
- def mean(s):
- """Return the arithmetic mean of a sequence of numbers s.
- >>> mean([-1, 3])
- 1.0
- >>> mean([0, -3, 2, -1])
- -0.5
- """
- assert len(s) > 0, 'cannot find mean of empty sequence'
- return sum(s) / len(s)
Advertisement
Add Comment
Please, Sign In to add comment