使用列表理解创建字典

thy*_*moo 0 python for-loop list

我想用列表理解创建这个对象:

{2012: 2012,
 2013: 2013,
 2014: 2014,
 2015: 2015,
 2016: 2016,
 2017: 2017,
 2018: 2018,
 2019: 2019,
 2020: 2020}
Run Code Online (Sandbox Code Playgroud)

我试过:

In [59]: [{x: x} for x in range(2012,2020,1)]
Out[59]: 
[{2012: 2012},
 {2013: 2013},
 {2014: 2014},
 {2015: 2015},
 {2016: 2016},
 {2017: 2017},
 {2018: 2018},
 {2019: 2019},
 {2020: 2020}]
Run Code Online (Sandbox Code Playgroud)

这不是我需要的确切输出。我也试过 [dict(x: x) for x in range(2012,2020,1)],但这是无效的语法。我如何实现上述结果?

Bar*_*mar 5

列表推导式总是创建一个列表。使用字典理解来制作字典。

{x: x for x in range(2012, 2021)}
Run Code Online (Sandbox Code Playgroud)

另请注意,这range()不包括结束值,因此range(2012, 2021)如果您希望最后一个值是 ,则需要使用2020.