Is there a way to flatten values of a nested list but alternately?
example:
nested_list = [[1, 3, 5], [2, 4]]
my expected output would be:
[1, 2, 3, 4, 5]
Advertisement
Answer
You can do it without numpy using iterators and keep track when the list stops growing:
nested_list = [[1, 3, 5], [2, 4]] # create a list of iterators per sublists k = [iter(sublist) for sublist in nested_list] # collect values res = [] # choose a value thats not inside your lists sentinel = None growing = True while growing: growing = False for i in k: # returns sentinel (None) if sublist no longer iterable u = next(i, sentinel) # add if it got a value if u != sentinel: growing = True res.append(u) print(res) # [1,2,3,4,5]
IF you have None
values in your list, you need to choose another sentinel
value.