Flatten a list/tuple and Call a function with tuples

Neil Cerutti horpner at yahoo.com
Wed Jul 25 14:47:45 EDT 2007


On 2007-07-25, Jeff <jeffober at gmail.com> wrote:
> Here's a quick flatten() function:
>
> def flatten(obj):
>     if type(obj) not in (list, tuple, str):
>         raise TypeError("String, list, or tuple expected in
> flatten().")
>     if len(obj) == 1:
>         if type(obj[0]) in (tuple, list):
>             return flatten(obj[0])
>         else:
>             return [obj[0]]
>     else:
>         return [obj[0]] + flatten(obj[1:])
>
> x = [1, 2, (3, 4)]
> y = (1, 2, [3, 4])
> z = "It even works with strings!"
> d = {"foo": "bar", "baz": "bat"}

e = [[1], 2, 3, , 4]
f = [1, 2, 3, 4, []]

-- 
Neil Cerutti



More information about the Python-list mailing list