首页 > 代码库 > Python中2维数组/矩阵转化为字典(矩阵中第一列含有重复元素)??

Python中2维数组/矩阵转化为字典(矩阵中第一列含有重复元素)??

例如将a=[[3,789],[1,100],[1,102],[2,102],[1,106],[2,456]];转化为一个字典b={1:[100,102,102],2:[102,456],3:[789]}

如果用强制转换:

1 >>> a=[[3,789],[1,100],[1,102],[2,102],[1,106],[2,456]];2 >>> b=dict(a)3 >>> b4 {1: 106, 2: 456, 3: 789}5 >>> 

结果显然删除了字典中重复键所对应的值;

 1 # 将列表转化为字典 2 def listTodict(): 3     a=[[3,789],[1,100],[1,102],[2,102],[1,106],[2,456]]; 4     lenArr=len(a); 5     # 列出第一列所有的元素值,包含重复元素 6     firstCol=[]; 7     for i in range(lenArr): 8         firstCol.append(a[i][0]); # [3, 1, 1, 2, 1, 2] 9     # 列出第一列所有的不重复元素10     firstColNotRep=set(firstCol);    # {1,2,3}集合中元素没有顺序11     firstColNotRep=list(firstColNotRep); # firstColNotRep=[1,2,3]12     # 统计第一列所有的不重复元素的个数13     lenfirstColNotRep=len(firstColNotRep);14     b=[];c=[];15     for i in range(lenfirstColNotRep):16         b.append([firstColNotRep[i]]);  # [[1], [2], [3]]17     for i in range(lenfirstColNotRep): 18         for j in range(lenArr):19             if firstColNotRep[i]==a[j][0]: # firstColNotRep=[1,2,3]20                 print(j);21                 b[i].append(a[j][1]);22     return b;23 # 结果b=[[1,100,102,106],[2,102,456], [3,789]]24 25 # 怎样将[1,100,102,106]先转为[1,[100,102,106]]转化为[1:[100,102,106]]26 def listToDict1():27     d=[[1,100,102,106],[2,102,456], [3,789]];28     e={};29     for i in range(len(d)):30         e[d[i][0]]=d[i][1:];31     return e;32     

 

Python中2维数组/矩阵转化为字典(矩阵中第一列含有重复元素)??