I think you mean to use map instead of filter:
>>> from string import upper
>>> mylis=[‘this is test’, ‘another test’]
>>> map(upper, mylis)
[‘THIS IS TEST’, ‘ANOTHER TEST’]
Even simpler, you could use str.upper instead of importing from string (thanks to @alecxe):
>>> map(str.upper, mylis)
[‘THIS IS TEST’, ‘ANOTHER TEST’]
In Python 2.x, map constructs a new list by applying a given function to every element in a list. filter constructs a new list by restricting to elements that evaluate to True with a given function.
In Python 3.x, map and filter construct iterators instead of lists, so if you are using Python 3.x and require a list the list comprehension approach would be better suited.
Or, alternatively, you can take a list comprehension approach:
>>> mylis = [‘this is test’, ‘another test’]
>>> [item.upper() for item in mylis]
[‘THIS IS TEST’, ‘ANOTHER TEST’]