我有以下内容:
tup_list=[("name1",2,3),("name6",54,6),("name4",4,6)]
my_dict={"name1": 0,"name2": 0,"name3": 0,"name4": 0,"name5": 0,"name6": 0}
def checker(tup_list,my_dict):
for tup in tup_list:
if tup[0] in my_dict:
my_dict[0]+=1
我希望循环遍历tup_list,如果密钥存在于my_dict中,我想在my_dict中为与该键相关联的值添加+1。我收到错误,我不确定如何最好地解决这个问题。
答案 0 :(得分:1)
您收到错误因为当您这样做时:
for tup in tup_list:
if tup[0] in my_dict:
my_dict[0]+=1 #first check what you are increasing
尝试print(my_dict[0])
你得到了你期待的东西吗?
所以你正在增加价值,但你在哪里存储变化的东西?为此,您必须告诉字典保存更新的键值。
而不是:
my_dict[0]+=1
使用:
my_dict[tup[0]]+=1
或
my_dict[item[0]]=value+1 #if you are iterating over dict
试试这个
def checker(tup_list,my_dict):
for tup in tup_list:
if tup[0] in my_dict:
my_dict[tup[0]]+=1
return my_dict
print(checker(tup_list,my_dict))
详细解决方案:
tup_list=[("name1",2,3),("name6",54,6),("name4",4,6),]
my_dict={"name1": 0,"name2": 0,"name3": 0,"name4": 0,"name5": 0,"name6": 0}
def checker(tup_list,my_dict):
for item in tup_list:
for key,value in my_dict.items():
if item[0]==key:
my_dict[item[0]]=value+1
return my_dict
print(checker(tup_list,my_dict))
输出:
{'name4': 1, 'name3': 0, 'name6': 1, 'name5': 0, 'name1': 1, 'name2': 0}