Skip to content

Instantly share code, notes, and snippets.

@jorgeacaballero
Created February 17, 2017 16:02
Show Gist options
  • Save jorgeacaballero/48a537171f72e4c547b27081b200336b to your computer and use it in GitHub Desktop.
Save jorgeacaballero/48a537171f72e4c547b27081b200336b to your computer and use it in GitHub Desktop.
import collections
def get_flat_int_array(input):
for item in input:
# check if its an array
if isinstance(item, collections.Iterable):
# if it is, apply recursive
for sub_array in get_flat_int_array(item):
yield sub_array
else:
# else yield to generate fltatten array
yield item
def test_get_flat_int_array():
simple = [[1,2,[3]],4]
medium = [[1],2,3,[4,5,[6,7]]]
advanced = [1,2,[3,4,[5,[6,7],8,9,[10,[11,[12,[13],14],15],16]]]]
print "Can flat %s: %s" % (simple, list(get_flat_int_array(simple)) == range(1, 5))
print "Can flat %s: %s" % (medium, list(get_flat_int_array(medium)) == range(1, 8))
print "Can flat %s: %s" % (advanced, list(get_flat_int_array(advanced)) == range(1, 17))
test_get_flat_int_array()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment