On 2013-08-26, Joshua Landau <jos...@landau.ws> wrote: > On 26 August 2013 14:49, Neil Cerutti <ne...@norwich.edu> wrote: >> On 2013-08-25, sahil301...@gmail.com <sahil301...@gmail.com> wrote: >>> >>> eg. my input is ['1', ' ', 'asdasd231231', '1213asasd', '43242'] >>> I want it to be interpreted as: >>> [1, [None], [None], [None], 43242] >>> >>> NOTE: NO INBUILT FUNCTION BE USED. >> >> Impossible. I think. > > class BoilerplateToStopCheating: > def __init__(self): > """Factor things out to prevent cheating.""" > self.digit_to_number = {"0":0, "1":1, "2":2, "3":3, "4":4, > "5":5, "6":6, "7":7, "8":8, "9":9} > > def __call__(self, items): > def fudging(): > """More cheat-fudging.""" > for item in items: > try: > as_number = 0 > for char in item: > as_number *= 10 > as_number += self.digit_to_number[char] > yield as_number > > except KeyError: > yield [None] > > [*z] = fudging() > return z > > converter = BoilerplateToStopCheating() > > # Can't use "print"... > # Erm... > converter(['1', ' ', 'asdasd231231', '1213asasd', '43242']) > # Output: [1, [None], [None], [None], 43242]
Very nice! It seems like unlucky students sometimes get C programming courses ham-fisted into Python without much thought. -- Neil Cerutti -- http://mail.python.org/mailman/listinfo/python-list