質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

1651閲覧

ある範囲の実数がリストの要素に存在するか判定したい

apeirogon0813

総合スコア117

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/07/30 10:35

double型の配列
L = [1.2, 2.5, 3.9, 4.2]
があるとき,
ある範囲[1.5~2.5]がリストに含まれるか([2-0.5 ~ 2+0.5])
を判定したいです.

範囲ではない整数の時はよく
数字 in リスト or 数字 not in リスト

のようなin関数?を用いていましたが,
範囲[1.5~2.5] in リスト
のようなやり方ができず困っています.

ご教示願います.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2021/07/30 10:49

> double型の配列 Pythonにdouble型はありましたか?他の言語の間違いでしょうか?
apeirogon0813

2021/07/30 10:52

申し訳ございません,リスト型の配列でした.
退会済みユーザー

退会済みユーザー

2021/07/30 10:58

具体的にどのようなコードを書かれてダメだったかを質問に記載した方が良いのではないでしょうか。 例えば範囲[1.5~2.5]と言うのもPythonでどのようにコーディングされたのか分かりません。 無理に in を使わず、単純にリストLの最小値 min(L)と最大値 max(L)、範囲の最小値、範囲の最大値を比較すれば、良い気がします。
TakaiY

2021/07/30 11:09

上の方も言っていますが、「範囲[1.5~2.5] in リスト」というのがどういう状態のときにtrueになるのかが明確ではありません。 リストの中の値がすべてその範囲に入っている? 範囲にある何かがリストにある?よくわかりません。 「数字 in リスト」は明確です。 その数字そのものがリストの要素であるかどうかです。
apeirogon0813

2021/07/30 11:34

申し訳ございません. L = [1.2, 2.5, 3.9, 4.2] 0.5 < Z < 1.5のとき Z in L は 1.2の要素が[0.5,1.5]の範囲内に含まれているので trueになります. もう1つの例として, 5.5 < Z < 6.0の場合, リストLには[5.5, 6.0]の間の値の要素が含まれないので falseになります.
guest

回答2

0

以下間違った回答ですが、基本的に削除しない方が良いと思いますので、そのまま晒して起きます。

L = [1.2, 2.5, 3.9, 4.2]

0.5 < Z < 1.5のとき
Z in L は
1.2の要素が[0.5,1.5]の範囲内に含まれているので
trueになります.
もう1つの例として,
5.5 < Z < 6.0の場合,
リストLには[5.5, 6.0]の間の値の要素が含まれないので
falseになります.

例えば
L = [1.2, 2.5, 3.9, 4.2]
Z = [0.5, 1.5]
と定義して、下限チェックは min(Z) < min(L) 、上限チェックは max(L) < max(Z) と書けると思います
従って、条件式としては
min(Z) < min(L) or max(L) < max(Z)
と言った比較で良いのではないでしょうか

投稿2021/07/30 11:40

編集2021/07/30 11:46
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

小数点数のリストとして回答します。

Python

1L = [1.2, 2.5, 3.9, 4.2] 2result = [i for i in L if i >= 1.5 and i <= 2.5] 3# [2.5]

投稿2021/07/30 10:54

meg_

総合スコア10607

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

apeirogon0813

2021/07/30 11:37

ありがとうございます. とてもスマートです.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問