Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Neil Cerutti Newsgroups: comp.lang.python Subject: Re: Checking homogeneity of Array using List in Python Date: 27 Aug 2013 12:03:22 GMT Organization: Norwich University Lines: 47 Message-ID: References: <39cf54bd-3772-448a-a56e-74e0b3cc8017@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: individual.net XrGpE5S5Of/UNiKq//ypTgD33Lau6H5w3k7pJ7yW5TzXwWBnN+ Cancel-Lock: sha1:w3457zat9RbAUo1uf4/asp2fp3c= User-Agent: slrn/0.9.9p1/mm/ao (Win32) Xref: csiph.com comp.lang.python:53056 On 2013-08-26, Joshua Landau wrote: > On 26 August 2013 14:49, Neil Cerutti wrote: >> On 2013-08-25, sahil301290@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