首页 > 解决方案 > 使用 List Comprehension 将 List 转换为 Dictionary 并将其值和键转换为整数

问题描述

假设我们有一个名为的列表列表A

A = [['1', '200'], ['2', '450'], ['3', '300']]

我想要做的是将上面的列表列表转换为一个字典,其中第一个元素作为键,第二个作为值,然后我想让键和值都转换为整数。

所以它将如下所示:

A = {1: 200, 
     2: 450,
     3: 300}

所有键和值都是整数。

我为此尝试了列表理解:

A = dict(zip(int(a), int(b)) for a, b in row for row in A) 

有错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'row' is not defined

标签: pythondictionary

解决方案


你不需要zip()在这里,只需放下它,你可以直接循环A并解压到aand b

A = dict((int(a), int(b)) for a, b in A)

这是一个将元组传递给可调用对象的生成器表达式。dict()

如果可以,您想改用字典理解;在 Python 2.7 和更新版本(包括所有 Python 3.x 版本)中可用:

A = {int(a): int(b) for a, b in A}

演示:

>>> A = [['1', '200'], ['2', '450'], ['3', '300']]
>>> dict((int(a), int(b)) for a, b in A)
{1: 200, 2: 450, 3: 300}
>>> {int(a): int(b) for a, b in A}
{1: 200, 2: 450, 3: 300}

推荐阅读