我有两本字典:
budgets = {'Engineering': 4500.0,
'Marketing': 5000.0,
'Operations': 3000.0,
'Sales': 2000.0}
spending = {'Engineering': 5020.0,
'Marketing': 1550.0,
'Operations': 3670.0,
'Sales': 3320.0}
我试着遍历它们,找出spending
中的值大于budgets
中的值。我现在写了:
但是,当我运行这个程序时,它们都打印Over Budget
,显然不是这样。有人能解释一下我处理这个问题的错误吗?在
谢谢:)
@aryamcarthy有一个很好的答案,但为了Python的缘故,我将发布另一种方法,您可以只使用一行:
此方法返回以下结果,这不一定是最漂亮的显示信息的方式,但从这里使用
^{pr2}$print
获得漂亮的输出并不遥远:请注意,如果
spending
中的任何键都不属于budgets
,这将引发KeyError
。在使用
dict.items()
如何:段
value in spending.values() > budgets.values()
实际计算布尔查询value in spending.values()
(成员资格检查),然后将结果与budget.values()
:来自budget
的值进行比较。在Python中,任何东西都可以比较,所以您可以将布尔值与列表进行比较——每次都是相同的,在您的例子中,它的计算结果是True
。你想要的更像这样:编辑:这只适用于python2。在python3中,您得到
TypeError: unorderable types
,这可以保证您不会犯这样的错误。在相关问题 更多 >
编程相关推荐