DECROMAX

flatten arbitrarily nested lists/tuples

Apr 21st, 2024
835
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.56 KB | Source Code | 0 0
  1. # flattens arbitrarily nested sequences
  2. # example: lst = [[1, 2, 3], [7, 3, 4], [2, 5, 6, [11, 12, 13]]]
  3. # returns: [1, 2, 3, 7, 3, 4, 2, 5, 6, 11, 12, 13]
  4.  
  5. def flatten(items: Sequence, seqtypes=(list, tuple)) -> Sequence:
  6.     """flattens arbitrarily nested lists
  7.    :param :items sequence containing nested items
  8.    :returns flattend result"""
  9.    
  10.     try:
  11.         for i, x in enumerate(items):
  12.             while isinstance(x, seqtypes):    
  13.                 items[i:i+1] = x
  14.                 x = items[i]
  15.     except IndexError:
  16.         pass
  17.     return items
Advertisement
Add Comment
Please, Sign In to add comment