Spaces:
Running
Running
import random | |
import itertools | |
def to_list(obj): | |
if obj is None: | |
return None | |
elif hasattr(obj, '__iter__') and not isinstance(obj, str): | |
try: | |
return list(obj) | |
except: | |
return [obj] | |
else: | |
return [obj] | |
def convert_lists_to_record(*list_objs, delimiter=None): | |
assert len(list_objs) >= 1, 'list_objs length must >= 1.' | |
delimiter = delimiter or ',' | |
assert isinstance(list_objs[0], (tuple, list)) | |
number = len(list_objs[0]) | |
for item in list_objs[1:]: | |
assert isinstance(item, (tuple, list)) | |
assert len(item) == number, '{} != {}'.format(len(item), number) | |
records = [] | |
record_list = zip(*list_objs) | |
for record in record_list: | |
record_str = [str(item) for item in record] | |
records.append(delimiter.join(record_str)) | |
return records | |
def shuffle_table(*table): | |
""" | |
Notes: | |
table can be seen as list of list which have equal items. | |
""" | |
shuffled_list = list(zip(*table)) | |
random.shuffle(shuffled_list) | |
tuple_list = zip(*shuffled_list) | |
return [list(item) for item in tuple_list] | |
def transpose_table(table): | |
""" | |
Notes: | |
table can be seen as list of list which have equal items. | |
""" | |
m, n = len(table), len(table[0]) | |
return [[table[i][j] for i in range(m)] for j in range(n)] | |
def concat_list(in_list): | |
"""Concatenate a list of list into a single list. | |
Args: | |
in_list (list): The list of list to be merged. | |
Returns: | |
list: The concatenated flat list. | |
References: | |
mmcv.concat_list | |
""" | |
return list(itertools.chain(*in_list)) | |