タグ付けされた質問 「clamp」

9
.NETの「クランプ」機能はどこにありますか?
値xを範囲にクランプしたい[a, b]: x = (x < a) ? a : ((x > b) ? b : x); これは非常に基本的です。しかし、クラスライブラリに「clamp」という関数はありませんSystem.Math。少なくともにはありません。 (知らないうちに値を「クランプ」することは、いくつかの最大値と最小値の間にあることを確認することです。それが最大値より大きい場合、最大値などに置き換えられます。)
92 c#  clamp 

9
整数をある範囲にクランプする方法は?
私は次のコードを持っています: 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, …
92 python  clamp 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.