允许用 Python 字典除以零
Allow Division by Zero with Python Dicts
我有两个 Python 字典,其中包含大致相同的键,我正在尝试将每个键对的值相乘。一本字典稍大(由于包含我想忽略的其他键)。我遇到的问题是,在某些情况下,分母中的零会导致 ZeroDivisionError: division by zero
- 因此我的问题是,我如何修改我的脚本以便执行除法,接受当分母中为零时结果将是“0”?
dict1 = {'A':1,'B':1,'C':2,'D':0}
dict2 = {'A':2,'B':2,'C':4,'D':0,'E':5}
myfunc = {k : v / dict2[k] for k, v in dict1.items() if k in dict2}
myfunc = {k : (v / dict2[k] if dict2[k] else 0) for k, v in dict1.items() if k in dict2}
试试下面的方法(想法是在除法之前确保分母不为零)
dict1 = {'A': 1, 'B': 1, 'C': 2, 'D': 0}
dict2 = {'A': 2, 'B': 2, 'C': 4, 'D': 0, 'E': 5}
myfunc = {k: v / dict2[k] if dict2[k] else 0 for k, v in dict1.items() if k in dict2}
print(myfunc)
输出
{'A': 0.5, 'B': 0.5, 'C': 0.5, 'D': 0}
我有两个 Python 字典,其中包含大致相同的键,我正在尝试将每个键对的值相乘。一本字典稍大(由于包含我想忽略的其他键)。我遇到的问题是,在某些情况下,分母中的零会导致 ZeroDivisionError: division by zero
- 因此我的问题是,我如何修改我的脚本以便执行除法,接受当分母中为零时结果将是“0”?
dict1 = {'A':1,'B':1,'C':2,'D':0}
dict2 = {'A':2,'B':2,'C':4,'D':0,'E':5}
myfunc = {k : v / dict2[k] for k, v in dict1.items() if k in dict2}
myfunc = {k : (v / dict2[k] if dict2[k] else 0) for k, v in dict1.items() if k in dict2}
试试下面的方法(想法是在除法之前确保分母不为零)
dict1 = {'A': 1, 'B': 1, 'C': 2, 'D': 0}
dict2 = {'A': 2, 'B': 2, 'C': 4, 'D': 0, 'E': 5}
myfunc = {k: v / dict2[k] if dict2[k] else 0 for k, v in dict1.items() if k in dict2}
print(myfunc)
输出
{'A': 0.5, 'B': 0.5, 'C': 0.5, 'D': 0}