Assignment 21 — function implementation that manipulate lists

Due Friday, November 2

Module quad.py (file will be available at the start of class)

• Defines four functions for cleaning up lists of strings. Program quadriga.py performs simple testing of quad.py.
• Observation: none of the function implementations require nested for-loops.
• There is to be only one submission per group. Make sure you correctly add both email ids in the header comment.

Suppose the following definitions are in effect below

test1 = ['AbCdE', 'ABCDE', '!"#\'x\$&)|}~', '- x -_', 'AAcc', ' ', 'x\n']

test2 = ['\tx X']

test3 = []

test4 = ['a', 'B', 'r', 'A', 'c', 'a', 'D', 'a', 'B', 'r', 'a']

Function lower( strings )

• Returns a new list whose elements are lower case versions of those in strings.
• Given the above definitions of test1, test2, test3, and test4, the following is the expected invocation results for lower().

lower( test1 ) = ['abcde', 'abcde', '!"#\'x\$&)|}~', '- x -_', 'aacc', ' ', 'x\n']

lower( test2 ) = ['\tx x']

lower( test3 ) = []

lower( test4 ) = ['a', 'b', 'r', 'a', 'c', 'a', 'd', 'a', 'b', 'r', 'a']

Function unique( strings )

• Returns a new version of strings without any duplicate values.
• Given the above definitions of test1, test2, test3, and test4, the following is the expected invocation results for unique().

unique( test1 ) = ['AbCdE', 'ABCDE', '!"#\'x\$&)|}~', '- x -_', 'AAcc', ' ', 'x\n']

unique( test2 ) = ['\tx X']

unique( test3 ) = []

unique( test4 ) = ['a', 'B', 'r', 'A', 'c', 'D']

Function strip( strings )

• Returns a new list whose elements correspond to the elements in strings with leading and trailing extraneous characters (punctuation or whitespace) removed.
• Given the above definitions of test1, test2, test3, and test4, the following is the expected invocation results for strip().

strip( test1 ) = ['AbCdE', 'ABCDE', 'x', 'x', 'AAcc', '', 'x']

strip( test2 ) = ['x X']

strip( test3 ) = []

strip( test4 ) = ['a', 'B', 'r', 'A', 'c', 'a', 'D', 'a', 'B', 'r', 'a']

Function canonical( strings )

• Returns a new list without duplicates whose elements are lower case versions of those in strings with leading and trailing extraneous characters removed.
• Given the above definitions of test1, test2, test3, and test4, the following is the expected invocation results for canonical().

canonical( test1 ) = ['abcde', 'x', 'aacc', '']

canonical( test2 ) = ['x x']

canonical( test3 ) = []

canonical( test4 ) = ['a', 'b', 'r', 'c', 'd']