繁体   English   中英

在Python中处理Dictionary元素时,面对+ =不支持的操作数类型:'int'和'NoneType'

[英]While dealing with Dictionary elements in Python faced unsupported operand type(s) for +=: 'int' and 'NoneType'

问题是在运行此代码时,一切都很好:

d={'9h':9, 'Qd':10}
l=['9h', 'Qd', 'test', 'test2']
s=0
for i in range(len(l)):
    if l[i] in d:
        s += d.get(l[i])
print s

但是在使用类进行操作时,出现错误“ + =不支持的操作数类型:'int'和'NoneType'”

这是我的课程实现:

def __init__(self, plr_cur_value, plr_result_score):
        self.plr_cur_value = plr_cur_value
        self.plr_result_score = plr_result_score

def deck_adjust(self):        
    for i in range(len(self.plr_cur_value)):
        if self.plr_cur_value[i] in self.d:
            self.plr_result_score + = self.d.get(plr_cur_value[i])

    return self.plr_result_score

听起来您可能会遇到格式化错误,其中总会执行score += value行,而value可能是`None。

另一种可能性是您的字典包含指示的键,但是相应的值为None

以下代码可以解决多个问题:

d = {'9h':9, 'Qd':10}
l = ['9h', 'Qd', 'test', 'test2']
s = 0
for i in l:
    s += d.get(i, 0)
print(s)

输出:

19

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM