【发布时间】:2020-03-01 21:25:23
【问题描述】:
我有以下代码:
some = {}
stat = {'matches_played': 0, 'won': 0, 'draws': 0, 'loss': 0, 'points': 0}
some = {'Arsenal': stat}
some.update({'Chelsea': stat})
some['Arsenal']['won'] += 1
some['Chelsea']['loss'] += 1
print(some)
结果是:
{'Arsenal': {'matches_played': 0, 'won': 1, 'draws': 0, 'loss': 1, 'points': 0},
'Chelsea': {'matches_played': 0, 'won': 1, 'draws': 0, 'loss': 1, 'points': 0}}
但是,我需要
{'Arsenal': {'matches_played': 0, 'won': 1, 'draws': 0, 'loss': 0, 'points': 0},
'Chelsea': {'matches_played': 0, 'won': 0, 'draws': 0, 'loss': 1, 'points': 0}}
你能解释一下,为什么会这样吗?
【问题讨论】:
-
您为两个团队持有相同的 dict 对象。谷歌深拷贝和浅拷贝。
-
使用字典的副本而不是使用相同的引用。
标签: python