Pythonで、2つのrangeの間の重複部分を計算する最も良い方法はどのようなものでしょうか?
例えば、
python
1x = range(2, 11) 2y = range(7, 18)
このような場合には、range(7, 11)
または[7, 8, 9, 10]
などのような値を計算したいです。
これをPythonで行う場合の最も良い方法としては、どのようなものが考えられるのでしょうか?
ご教示ください。
この場合だけを解決すれば良いのですか。
stepが入り、それが負数の場合なども考えなければならないとなると、どういう順序で実行したいのかという仕様が決まっていないと答えが出せません。
すみません、「どういう順序で実行したいのか」というのは、どのような意味でしたでしょうか?
と言いますのは、値を計算したいというのが目的でして、順序ということの意味がよくわかりませんでして...
例えば、range(7)とrange(10,4,-1)の重複部分を実行したいとして、そこで実行する文がprint(i)だったりするとき、
6
5
になるか
5
6
になるかという問題です。
何かを実行するという事ではなくて、値が取得できればよいのですが、もしソートが必要な場合には得られたデータをソートすることで対応できる程度の処理として考えております。
> 値が取得できればよい
えっ? でもその仕様をどうするかが提示されないなら、どのようなコードが適切か(なにが必要十分か、なにで十分か)とか、回答を評価する観点がなくなってしまいますよね。
回答するべきコードの仕様が曖昧でしかないし、そうなら、質問の「rangeの重複部分を計算する」はやりたいことに対して過大すぎる表現だと思います。
rangeのstepが負の場合は考えません、とか、rangeのstepが負の場合はこういう感じで十分です、とかそういうことを、質問に追記・修正してほしいです。(そもそもそういう意図の欄です。ここに情報を書かないで質問に書きましょう)
回答として記載させて頂きましたが、rangeとして定義される要件は、私としては明快であったかなと考えます。stack overflowでは、ほぼ同等の記述の質問で回答が成立していましたし、この質問においても望む回答が得られたものと考えます。
ただ、一部の方には伝わらない部分もあったかと思いますので、万人にわかるような記述でなかった事はお詫びします。申し訳ございませんでした。
回答6件
あなたの回答
tips
プレビュー