python - 使用 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
解决方案
你不需要zip()
在这里,只需放下它,你可以直接循环A
并解压到a
and 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}
推荐阅读
- javascript - 我正在努力在javascript中创建一个按钮
- google-chrome-extension - 从 Polkadot js 扩展中检索密码
- qt - 从 C++ 更新 QML Window 属性标志
- javascript - Vue 2;在“firebase/app”中找不到导出“默认”(导入为“firebase”)
- python - 使用 python 和 Biopython 加入不同的 FASTA 文件
- terraform - 使用 terraform 模块管理结果的细微差异
- go - 为什么在 Go 中访问 nil 指针会导致中序遍历出错
- docker - 如何在 debian 中设置 docker 服务的最大内存限制?
- python - 我如何告诉 Scrapy 抓取 start_urls 中的 data-url 而不是 url 本身?
- botframework - 访问以前的机器人响应(字符串)Microsoft Bot Composer