Checking homogeneity of Array using List in Python

Neil Cerutti neilc at norwich.edu
Tue Aug 27 08:03:22 EDT 2013


On 2013-08-26, Joshua Landau <joshua at landau.ws> wrote:
> On 26 August 2013 14:49, Neil Cerutti <neilc at norwich.edu> wrote:
>> On 2013-08-25, sahil301290 at gmail.com <sahil301290 at 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



More information about the Python-list mailing list