2024-04-20 04:18:26 发布
网友
我有一个这样的列表:N = [[a,b,c],[d,e,f],[g,h,i]]
N = [[a,b,c],[d,e,f],[g,h,i]]
我想创建一个包含N中每个列表的所有第一个值的字典,这样我就有了
d = {1:[a,d,g],2:[b,e,h],3:[c,f,i]}
我试过很多东西,但我想不出来。我得到的最接近的结果是:
d = {} for i in range(len(N)): count = 0 for j in N[i]: d[count] = j count+=1
但是这本字典不适合我吗?我真的非常感谢您的指导,谢谢
您可以使用zip(*N)转置列表,然后使用enumerate将索引和元素成对地进行dict
>>> dict((i+1, list(j)) for i, j in enumerate(zip(*N))) {1: ['a', 'd', 'g'], 2: ['b', 'e', 'h'], 3: ['c', 'f', 'i']}
备选方案基于@Vishal Singh的建议
>> dict((i, list(j)) for i, j in enumerate(zip(*N), start=1))
检查下面提供的代码并输出
N = [[a,b,c],[d,e,f],[g,h,i]] d = {} for y in range(0,len(N)): tmp=[] for x in N: tmp.append(x[y]) d[y+1]=tmp //Output: {1: [a, d, g], 2: [b, e, h], 3: [c, f, i]}
希望有帮助
您可以使用dict理解(我使用N和4项,以避免混淆):
N=[['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i'],['w', 'j', 'l']] {i+1:[k[i] for k in N] for i in range(len(N[0]))} #{1: ['a', 'd', 'g', 'w'], 2: ['b', 'e', 'h', 'j'], 3: ['c', 'f', 'i', 'l']}
您可以使用zip(*N)转置列表,然后使用enumerate将索引和元素成对地进行dict
备选方案基于@Vishal Singh的建议
检查下面提供的代码并输出
希望有帮助
您可以使用dict理解(我使用N和4项,以避免混淆):
相关问题 更多 >
编程相关推荐