Python 添加另一个条目时,字典被覆盖
我有一个创建字典的函数Python 添加另一个条目时,字典被覆盖,python,dictionary,Python,Dictionary,我有一个创建字典的函数 def Bowler_creator (Name): """ This function will create the dictionaries for the batting player """ global bowler; bowler = { Name : { "number_of_overs":0.0, "number_of_runs":0,
def Bowler_creator (Name):
"""
This function will create the dictionaries for the batting player
"""
global bowler;
bowler = {
Name : { "number_of_overs":0.0,
"number_of_runs":0,
"number_of_wickets":0,
'economy_rate':0.0,
'Maiden overs':0
},
}
Current_Bowler = input("Enter the bowler's name\n");
Bowler_creator(Current_Bowler);
Bowler_creator('jafda');
我的想法是,我将像下面那样调用这个函数,以便为这个字典创建具有相同输入值的新键
def Bowler_creator (Name):
"""
This function will create the dictionaries for the batting player
"""
global bowler;
bowler = {
Name : { "number_of_overs":0.0,
"number_of_runs":0,
"number_of_wickets":0,
'economy_rate':0.0,
'Maiden overs':0
},
}
Current_Bowler = input("Enter the bowler's name\n");
Bowler_creator(Current_Bowler);
Bowler_creator('jafda');
所以按照我的想法,字典应该创建两个元素,两个键分别是Current\u Bowler
和jafda
,但在我尝试打印字典后,它只返回最新的一个。你能告诉我为什么我的字典会被一个新的键覆盖吗?你每次都会用一个全新的字典替换字典
您应该创建一次字典,然后添加关键字:
bowler = {}
def Bowler_creator (Name):
bowler[Name] = {
"number_of_overs":0.0,
"number_of_runs":0,
"number_of_wickets":0,
'economy_rate':0.0,
'Maiden overs':0
}
注意:由于该函数不再需要将新对象分配给
bowler
,因此也不需要将其标记为全局对象。直接指定给键会直接修改全局字典。每次在函数中创建新字典时,您都会创建一个新字典。
试着做
bowler[Name] = { "number_of_overs":0.0,
"number_of_runs":0,
"number_of_wickets":0,
'economy_rate':0.0,
'Maiden overs':0
}
您每次都在创建一个新词典。。。你的意思是bowler[Name]={…}
这样字典就不会告诉我们它正在被替换,为了有一个新的条目,我们必须像bowler[Name]={}那样开始,明白了吗it@SaiKoti:您通过为保龄球手分配其他内容来绑定它<代码>保龄球手=…
。那个表达式碰巧指定了一本全新的词典。通过指定一个键,您只替换该键的值,而不是整个字典。@SaiKoti:否则,很高兴能提供帮助!如果您觉得它对您有用,请随时使用。:-)嗨,阿法克,你的答案本身就包含了字典里的键值,没问题,这也很有帮助