如何通过循环2D列表来创建字典?

时间:2018-04-23 21:48:01

标签: python list

只是想知道是否有办法将2D列表转换为字典。

在我的结果列表中,我有类似

的内容
[(15000001, datetime.datetime(2018, 2, 26, 12, 58, 10)), (15000002, datetime.datetime(2018, 2, 26, 12, 58, 11))]

我试图找到一种方法来循环它以获得

{'StudentID': results[row][0] ,'ClassAttended': results[row][1]}

psudocode就像

for row in results:
    for item in row:
        DO THIS {'StudentID': results[row][0] ,'ClassAttended': results[row][1]}

会打印出像

这样的内容
{'StudentID' : '15000001', 'ClassAttended': '2018-2-26 12:58:10'}

1 个答案:

答案 0 :(得分:2)

当然,请使用dictzip和列表理解。

result = [ dict(zip(["StudentID", "ClassAttended"], row)) for row in inputlist]

或更直接:

result = [ {"StudentID": student, "ClassAttended": class}
         for (student, class) in inputlist]

请注意,您的代码几乎是正确的,只需要累积。

accumulator = []
for row in inputlist:
    d = {"StudentID": row[0],
         "ClassAttended": row[1]}
    accumulator.append(d)