Search a list of nested tuples of strings in python -
lets have list x:
x=['alfa[1]', 'bravo', ('charlie[7]', 'delta[2]'), 'echo[3]'] i want create new list both flattens , removes bracketed number if item has one. result should be:
x_flattened_bases = ['alfa', 'bravo', 'charlie', 'delta', 'echo'] here have:
x_flattened_bases = [] item in x: if isinstance(item, tuple): x_flattened_bases.extend([value.split('[')[0] value in item) else: x_flattened_bases.append(item.split('[')[0]) there 1 level of nesting in list.
something this:
import collections import re def solve(lis): element in lis: if isinstance(element, collections.iterable) , not isinstance(element,str): x in solve(element): yield re.sub(r"\[\d+\]",r"",x) else: yield re.sub(r"\[\d+\]",r"",element) x=['alfa[1]', 'bravo', ('charlie[7]', 'delta[2]'), 'echo[3]'] print list(solve(x)) output:
['alfa', 'bravo', 'charlie', 'delta', 'echo']
Comments
Post a Comment