我有一大堆属于给定范围name_range_old的名称。 例如:
name_range_old = [name1, name2]
names = [name1, name2, name1, name1, ...]
我想根据不同的标准(debt_range中的名称)重新分类每个元素。我以一种可能不是最优的方式完成它,我正在寻找可能更快的替代方案。
这是我的尝试:
names_list = ['A', 'B', 'A', 'C', 'E', 'F', 'B', 'G', 'G', 'D', 'H']
name_range_old = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
name_range_new = ['K', 'U', 'V']
n_names = len(name_range_new)
name_index = [] # This index maps the old range to the new
name_index.append([0, 1, 2, 10])
name_index.append([3, 4, 5, 6])
name_index.append([7, 8, 9])
def classifier(name):
a = [i for i in range(n_names) if name in
name_range_old[name_index[i]]]
return name_range_new[a[0]]
names_list = [classifier(name) for name in names_list]