字典覆盖/擦除对象



下面是我的代码的缩写形式,因为完整的代码太长了。

想象一下,有人访问您的网站,它会在样本中获取您的 id * steamid)。 但是我的代码只把字典中的最后一个steamid放进去。

def player_activate(ev)
  userid = ev["userid"]
  steamid = es.getplayersteamid(userid)
  data = {}
  data["Season 1"] = {}
  data["Season 1"][steamid] = {'points':20, 'kill':1}
print(data["Season 1"][steamid])

字典中只显示一个 steamid,而不是全部,所以我得到:

{'STEAM_5838512', 'points:20','kill:1'} 

但我想要的是:

{'Season 1', 'STEAM_5838512', 'points:20','kill:1', 
 'Season 1', 'STEAM_83257231', 'points:20','kill:1'}
data["Season 1"] = {}
data["Season 1"][steamid] = {'points':20, 'kill':1}

您将data中的Season 1值设置为空白字典,然后为该新词典分配一个蒸汽词典。

将其更改为如下所示的内容,该内容使用 dict.setdefault

data.setdefault("Season 1", {})
data["Season 1"][steamid] = {'points':20, 'kill':1}

它检查是否有一个名为 Season 1data键,如果没有,它将 data['Season 1] 的值设置为 {} ,这意味着它不会覆盖 Season 1 下的任何现有数据。

最新更新