【发布时间】:2016-11-04 08:52:51
【问题描述】:
下面的代码有点来自一个更大的部分。 lines 是一个 2D 列表,而 keyss 是一个 1D 列表。行中的所有元素的长度与键的长度相同。
datadict = []
for element in lines:
for index in range(len(element)):
datadict.append({keyss[index]: element[index]})
我想知道是否有一种方法可以使用字典理解来编写这个?这更像是一个奇怪的问题,因为显示的代码非常适合我正在做的事情。我一直在尝试,也找不到方法。如果你能复习一下它的语法,谢谢!
编辑#1:
阅读回复后,我意识到它并没有真正起作用。我正在尝试做一个列表理解,其中每个元素都是字典理解。我不完全确定这是否可能。我想制作一个字典列表,在其中获取键中的每个元素并匹配索引以匹配列表中的元素中的索引,如果这有意义的话。
编辑#2:
我找到data_list = [{keyss[i]:row[i] for i in range(len(keyss))} for row in lines] 工作。
【问题讨论】:
-
我认为您混淆了列表和字典。你所谓的
datadict实际上是一个包含只有一个键的字典的列表。这是预期的结果还是您想构建一个大字典?
标签: python python-3.x dictionary dictionary-comprehension