>>> 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]}
即使复制[]也不起作用:
- dict(zip(keys, [[][:]]*len(keys(((
- dict(zip(keys, [copy.deepcopy([](]*len(keys(((
{1: [100], 2: [], 3: []}正是我想要的。
尝试列表理解:
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: []}