标签:style blog color ar sp for div on log
例如将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 >>> b 4 {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维数组/矩阵转化为字典(矩阵中第一列含有重复元素)??
标签:style blog color ar sp for div on log
原文地址:http://www.cnblogs.com/yuzhuwei/p/4089631.html