字典覆盖/删除对象

时间:2013-09-22 14:28:48

标签: python dictionary ip

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

想象一下有人访问了您的网站,并在样本中获得您的身份* 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])

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

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

但我想要的是:

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

1 个答案:

答案 0 :(得分:3)

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

您将Season 1data的值设置为空白字典,然后,您将新字典分配为steamid。

将其更改为以下内容,使用dict.setdefault

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

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