0

Python リストがあり、特定のインデックスが範囲外かどうかを確認したいと考えています。ユーザー入力を受け入れているので、インデックスを 0 以上の整数に制限したいと思います。これを行う最も Pythonic な方法は何ですか? 現在、これが私の解決策です:

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]
4

3 に答える 3

2

値にアクセスしようとするとIndexError、範囲外の場合に取得されます。通常とは異なるチェックが必要な場合は、事前に手動で行ってください。

def get_current_settings(self, slot):
    if slot < 0:
        raise IndexError(...)
    return self.my_list[slot]
于 2013-03-27T18:54:01.560 に答える
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]
于 2013-03-27T19:07:44.983 に答える
0

if 行を次のように置き換えます。

  if slot not in range(len(self.my_list)):
于 2013-03-27T18:59:44.840 に答える