我有一个具有以下值的文件:
Isabella,42567,Girl
Sophia,42261,Girl
Jacob,42164,Boy
Emma,35951,Girl
Ethan,34523,Boy
Mason,34195,Boy
William,34130,Boy
Olivia,34128,Girl
Jayden,33962,Boy
Ava,30765,Girl
我应该返回每个第一个字母的总和,我已经这样做了:
for i in names_file:
if i[0] not in my_dictionary:
j = i.strip().split(",")
my_dictionary[i[0]] = int(j[1])
else:
my_dictionary[i[0]] += int(j[1])
names_file.close()
你知道为什么“else”不能正确总结吗?你知道吗
J应该返回76126,但它返回76292
这是因为您在if条件中定义了
j
。当它进入else
时,它使用前面计算的j
。你知道吗对于
J
,它取奥利维亚的值34128
。等于42164+34128=76292。你知道吗要解决这个问题,只需在条件外定义
j
:您在第一个if中定义j,因此当您到达文件中的Jayden时,您的j在Olivia行中具有值,并且不会得到更新。你知道吗
这应该起作用:
相关问题 更多 >
编程相关推荐