dictionary - python - 如何使用列表中的键和Python中的空值初始化dict?

我想从中得到:

keys = [1,2,3]

到这里:

{1: None, 2: None, 3: None}

有pythonic的方法吗?

这是一种丑陋的做法:

>>> keys = [1,2,3]
>>> dict([(1,2)])
{1: 2}
>>> dict(zip(keys, [None]*len(keys)))
{1: None, 2: None, 3: None}

最佳答案

dict.fromkeys直接解决问题:

>>> dict.fromkeys([1, 2, 3, 4])
{1: None, 2: None, 3: None, 4: None}

这实际上是一个类方法,因此它也适用于字典子类(如 collections.defaultdict)。

可选的第二个参数,默认为 None,指定用于键的值。请注意,相同的对象将用于每个键,这可能会导致可变值出现问题:

>>> x = dict.fromkeys([1, 2, 3, 4], [])
>>> x[1].append('test')
>>> x
{1: ['test'], 2: ['test'], 3: ['test'], 4: ['test']}

https://stackoverflow.com/questions/2241891/

相关文章:

linux - 如何从 shell 将一个文件 append 到 Linux 中的另一个文件?

linux - 如何让 cp 命令创建任何必要的文件夹以将文件复制到目标

python - 如何获取方法参数名称?

linux - 在 Linux 系统上快速创建大文件

python - 如何在 Django 中创建 slug?

linux - 使用 cURL 执行 HTTP 请求(使用 PROXY)

python - 如何将 SQLAlchemy 行对象转换为 Python 字典?

python - 我应该在 Python 中使用 "camel case"还是下划线?

linux - 向进程组的所有成员发送信号的最佳方式是什么?

python - 从第 2 行读取文件或跳过标题行