我刚刚写了一些我写的东西的问题,并希望我能够正确解释发生的事情,以及解决问题的最佳方法。我有一个修复程序,但我不确定它是否是最佳解决方案
我有一个变量interval
,它是一个字符串。在这种情况下,让我们说interval = 'Day'
代码将此与if
和elif
表达式中的元组进行比较:
if interval in ('FiscalWeekDaily','Daily'):
...
...
elif interval in ('DayHourly'):
现在我认为'Day' in ('DayHourly')
会评估为False
,但事实证明它的评估结果为True
。对此有何准确解释?我认为由于只有1个元素,因此将'Day'与该元素进行比较。
因此,如果我尝试'Day' in ('DayHourly', 'whatever')
,那么评估为False
因为'Day'是针对每个元素进行评估的,对吗?
所以我的修复只是elif interval in ['DayHourly']:
。这是正确的做法吗?
答案 0 :(得分:2)
其中包含单个对象的元组需要有一个逗号,它是制作元组的逗号,而不是括号。
换句话说:
('DayHourly') == 'DayHourly'
您想要('DayHourly',)