[英]2D Array to Dictionary conversion
如何将输入转换为输出?
输入: mat=[[3, 37],[1, 41],[2, 37],[5, 41],[4, 35]]
输出: mat={37:[3,2],41:[1,5],35:[4]}
我试过下面的代码:
dic={}
x=[]
for i in mat:
dic[i[1]]=list()
dic[i[1]]=i[0]
得到这个答案: {37: 2, 41: 5, 35: 4}
你可以使用setdefault
d = {}
for a,b in mat:
d.setdefault(b, []).append(a)
当需要默认值时,使用defaultdict
是一种很好的做法。
from collections import defaultdict
m = defaultdict(list)
for val, key in mat:
m[key].append(val)
尝试这个:
dic={}
for i in mat:
if i[1] not in dic:
dic[i[1]] = []
dic[i[1]].append(i[0])
你快到了。 setdefault()
/ append()
解决方案已经完美运行。 另一种方法是使用list
+
运算符连接两个列表并返回结果:
dic = {}
for i,j in mat:
dic[j] = dic.get(j, []) + [i]
尝试这个:
dic={}
for i in mat:
if dic.has_key(i[1]):
dic[i[1]].append(i[0])
else:
dic[i[1]]=list()
dic[i[1]].append(i[0])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.