创建具有列表理解能力的dict



我想创建这个具有列表理解能力的对象:

{2012: 2012,
2013: 2013,
2014: 2014,
2015: 2015,
2016: 2016,
2017: 2017,
2018: 2018,
2019: 2019,
2020: 2020}

我试过了:

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}]

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

列表理解总是创建一个列表。运用字典理解来制作字典。

{x: x for x in range(2012, 2021)}

还要注意,range()不包括结束值,因此如果希望最后一个值为2020,则需要使用range(2012, 2021)

您可以简单地通过字典理解获得所需的输出

result = {x: x for x in range(2012, 2021)}
print(result)
>>> {2012: 2012, 2013: 2013, 2014: 2014, 2015: 2015, 2016: 2016, 2017: 2017, 2018: 2018, 2019: 2019, 2020: 2020}

如果您想进行列表理解

d={}
[d.update({x: x}) for x in range(2012,2021)]
print(d)
>>> {2012: 2012, 2013: 2013, 2014: 2014, 2015: 2015, 2016: 2016, 2017: 2017, 2018: 2018, 2019: 2019, 2020: 2020}

最新更新