现有两个列表
aa = ['a','a','b','a','b']
bb = [1,2,3,4,3]
想要得到结果为:
{'a': [1, 2, 4], 'b': [3, 3]}
代码如下:
from itertools import groupby
import numpy as npaa = ['a','a','b','a','b']
bb = [1,2,3,4,3]aa_sorted = sorted(aa)
index = np.argsort(aa)
bb_sorted = np.array(bb)[index].tolist()aa_sorted_binded = [list(j) for i,j in groupby(aa_sorted)]
index = [[0]]
index.append([len(ele) for ele in aa_sorted_binded])
index = sum(index,[])
bb_sorted_binded = [bb_sorted[index[i]:index[i]+index[i+1]] for i in range(len(index)-1)]
result = dict(zip(list(set(aa)),bb_sorted_binded))