单行for循环构建字典?

时间:2014-12-31 03:17:56

标签: python for-loop dictionary

我正在构建一个字典(我稍后将其制作为JSON字符串)。我这样构建它:

data = {}
for smallItem in bigList:
    data[smallItem] = smallItem

如何将循环换一行呢?

2 个答案:

答案 0 :(得分:29)

您可以使用dict comprehension

data = {smallItem:smallItem for smallItem in bigList}

您也可以使用dictgenerator expression

data = dict((smallItem, smallItem) for smallItem in bigList)

但是dict理解会更快。

至于将其转换为JSON字符串,您可以使用json.dumps

答案 1 :(得分:6)

实际上在这个特定情况下你甚至不需要字典理解,因为你使用了重复的键/值对

>>> bigList = [1, 2, 3, 4, 5]
>>> dict(zip(bigList, bigList))
{1: 1, 2: 2, 3: 3, 4: 4, 5: 5}