单行for循环构建字典?

eas*_*ees 20 python dictionary for-loop

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

data = {}
for smallItem in bigList:
    data[smallItem] = smallItem
Run Code Online (Sandbox Code Playgroud)

我怎样才能使循环一行?

iCo*_*dez 32

你可以使用dict理解:

data = {smallItem:smallItem for smallItem in bigList}
Run Code Online (Sandbox Code Playgroud)

您也可以使用dict生成器表达式:

data = dict((smallItem, smallItem) for smallItem in bigList)
Run Code Online (Sandbox Code Playgroud)

但是dict理解会更快.

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


jam*_*lak 6

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

>>> bigList = [1, 2, 3, 4, 5]
>>> dict(zip(bigList, bigList))
{1: 1, 2: 2, 3: 3, 4: 4, 5: 5}
Run Code Online (Sandbox Code Playgroud)