整数をある範囲にクランプする方法は?
私は次のコードを持っています: new_index = index + offset if new_index < 0: new_index = 0 if new_index >= len(mylist): new_index = len(mylist) - 1 return mylist[new_index] 基本的に、私は新しいインデックスを計算し、それを使用してリストからいくつかの要素を見つけます。インデックスがリストの境界内にあることを確認するために、これらの2つのifステートメントを4行に分割して記述する必要がありました。それはかなり冗長で、少し醜いです...あえて言ってください、それは非常に非Pythonicです。 他にもっとシンプルでコンパクトなソリューションはありますか?(そしてもっとpythonic) はい、if else1行で使用できることはわかっていますが、判読できません。 new_index = 0 if new_index < 0 else len(mylist) - 1 if new_index >= len(mylist) else new_index またmax()、min()一緒にチェーンできることも知っています。よりコンパクトですが、タイプを間違えた場合、バグを見つけるのは少しあいまいで、わかりにくく感じます。言い換えれば、私はそれが非常に簡単であるとは思いません。 new_index = max(0, min(new_index, …