首页 > 解决方案 > python - 如何在Python中构建一个所有值都是[]的独立实例的字典?

问题描述

>>> keys = [1, 2, 3]
>>> d = dict(zip(keys, [[]]*len(keys)))
>>> d
{1: [], 2: [], 3: []}
>>> d[1].append(100)
>>> d
{1: [100], 2: [100], 3: [100]}

即使复制 [] 也不起作用:

{1: [100], 2: [], 3: []}正是我想要的。

标签: pythonlistdictionarycopydeep-copy

解决方案


尝试列表理解

keys = [1, 2, 3]
d = dict(zip(keys, [[] for _ in keys]))
d[1].append(100)

根据 abarnert 的评论,您可以通过使用字典理解使您的代码更加简单:

keys = [1, 2, 3]
d = {key:[] for key in keys}
d[1].append(100)

使用这两个选项调用d会产生以下输出:

{1: [100], 2: [], 3: []}


推荐阅读