def flatten_list(list1): if flat(list1): return list1 result = [] for element in list1: if (type(element) is list): flattened_element = flatten_list(element) result = result + flattened_element else: result = result + [element] return result """ returns true if the list is flat (contains no lists as elements) """ def flat(list1): for element in list1: if type(element) is list: return False return True def flatten_list2(object1): if not(type(object1) is list): return [object1] result = [] for element in object1: flattened_element = flatten_list2(element) result = result + flattened_element return result def flatten_list3(list1): current_list = list1 while(not(flat(current_list))): new_list = [] for element in current_list: if type(element) is list: new_list = new_list + element else: new_list = new_list + [element] current_list = new_list return current_list