当前位置: 代码迷 >> 综合 >> python 将具有重复元素的两个列表组合成字典
  详细解决方案

python 将具有重复元素的两个列表组合成字典

热度:97   发布时间:2024-02-20 02:39:43.0

现有两个列表

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))

 

  相关解决方案