値がリストに含まれているかどうかテストする方法はありますか? 「はmyList中のn場合: プリント( 『値Nがリストにある』)」Pythonで は、私はあなたが ような何かを行うことができると思い値がリスト/配列(Ti-Basic)にあるかどうかのテスト
私は、それぞれの値をチェックするforループを使用したくありませんそれが唯一の選択肢でない限り、別々に。 私はTi-84 Plusを使用しています。
値がリストに含まれているかどうかテストする方法はありますか? 「はmyList中のn場合: プリント( 『値Nがリストにある』)」Pythonで は、私はあなたが ような何かを行うことができると思い値がリスト/配列(Ti-Basic)にあるかどうかのテスト
私は、それぞれの値をチェックするforループを使用したくありませんそれが唯一の選択肢でない限り、別々に。 私はTi-84 Plusを使用しています。
これは私が正しく考えていると仮定して動作するはずです。これは非常に簡単です。L₁
が検索するリストで、X
が検索する値です。
max(not(L₁-X
ステップバイステップ分析:
L₁-X
:リスト内のすべての値を引きます。今、このリストにゼロが含まれている場合、値がL₁
であることを意味します。not(L₁-X
:リスト内のすべてを反転します。これはすべてのゼロを1に変換し、それ以外は0に変換します。今、このリストに1つが含まれている場合は、値がL₁
であったことを意味します。リストがすべてゼロであれば、リストはゼロではありません。max(not(L₁-X
:リストの最大値を取得します。上記のように、値がL₁
の範囲内にない場合、リストはすべてゼロになるため、最大値はゼロになります。 L₁
の値がinsideの場合、最大値は1になります。これは、このような単純なチェックになり:うわー
If max(not(L₁-X
Disp "The value was found:",X
検索にこのアイデアはTI-Basic Developerからのものであり、非常に素晴らしいです:
はあなたがx
という名前の値とL
という名前のリストを持っているとしましょう。
:If max(1/1+(abs(L-x)))=1
:Then
//value is in list
:Else
//value is not in list
:End
これだけです!ここで
は、それがどのように動作するかです:
abs(L-x)
max(1/1+(abs(L-x)))
:If max(1/1+(abs(L-x)))=1
。どうして? 1/1 + 0
は1であり(数字マイナス自体は常に0です)、0は1/1 + x
(もちろん正の数の場合)の可能な最大値です。最大値が1より小さい場合は、検索された値がリスト内にないことがであり、特定の値がである。
を、これは私のソリューションよりもさらにクリーナーです。ニース! – the4kman