我有一个Python列表,我想检查一个给定的索引是否超出范围。由于我接受用户输入,我想将索引限制为大于或等于0的整数。最恐怖的方法是什么?目前,这是我的解决方案:
def get_current_setting(self, slot):
if slot < 0 or slot > len(self.current_settings) - 1:
raise Exception("Error message...")
return self.current_settings[slot]
答案 0 :(得分:2)
为什么不尝试访问该值,如果超出范围,您将获得IndexError
。你想要做的任何不寻常的检查,只需手动做那些。
def get_current_settings(self, slot):
if slot < 0:
raise IndexError(...)
return self.my_list[slot]
答案 1 :(得分:1)
在Python中,您可以同时执行两项检查(下限和上限),使if条件更具可读性:
def get_current_setting(self, slot):
if not 0 <= slot < len(self.current_settings):
raise Exception("Error message...")
return self.current_settings[slot]
答案 2 :(得分:0)
我用这个替换你的if行:
if slot not in range(len(self.my_list)):