any()はObj内の要素の真偽を判定【Pythonメモ】

未分類

早返しの言語Python

プログラム言語としてPythonは秀逸だと思えます。その理由として実感できる理由は以下です。

①初学者にも確認と学習が容易で、作業者の頭の中で体系化しやすい。

②プラグインの形でモジュール化されたソフト部品群が豊富

③ソフト体系が簡明で単純な作業は直ぐ応答、確認が出来る。(この点は返しが早いイメージ)

特に今回、私はany()を考える事でプログラムの論理を整理できています。本稿ではany()を題材にPythonでのデータの扱いを考えます。

データ格納をイメージ

プログラムを簡単に考える為に、パソコンの中でのデータを考え直してみましょう。既に情報処理系の知識がある方は読み飛ばして下さい。

Pythonプログラム内で”Obj”という場所は、一般的にはオブジェクト(Object)の略称として使用されることがあります。Pythonはオブジェクト指向プログラミング言語であり、ほとんどのもの(数値、文字列、リスト、関数など)がオブジェクトとして扱われます。

例えば、以下のようなPythonコードでは、”Obj”という変数にあるオブジェクトが代入されています。

Obj = "Hello, World!"

また、オブジェクト指向プログラミングにおいて、クラス(Class)を定義し、そのクラスからオブジェクトをインスタンス化することも一般的です。その場合、”Obj”はそのインスタンスを指すことがあります。

class MyClass:
  def __init__(self, x):
    self.x = x
Obj = MyClass(10)
“Obj”はPythonプログラム内でオブジェクトを参照するための変数名として使用されますが、特に意味がある特別な場所というわけではありません。

基本的にObjとはObject(:目的)の略で以下データを格納しておくく場所です。具体的には

①数値
②リスト
③タプル
④辞書
⑤集合

こうしたデータをPythonでは格納していきます。起動時から入力(定義)したデータをパイソン君は覚えていてくれてるんです。

また、ここで出てきているOjtとは所謂オブジェクト思考でのオブジェクトとOjtは、完全に意味が一致しない場合があるのでご注意下さい。

具体的に真偽を論理へ

具体的に下記の変数を扱ってみましょう。

a=12
b=-6
c=76

この時、Ojtには3つの変数が格納されています。そして以下要求をしてみます。

A=any(a<0)
B=any(a+b>0)
C=any(76)
print(A)
print(B)
print(C)

この時の応答は

False
True
True

となります。

実際の真儀

前節では簡単な例で説明していますが、実際には様々な論理判定をプログラムに反映できます。

Pythonでは、any()関数を使用してリストやイテラブルオブジェクト内の要素のいずれかが真の場合にTrueを返すことができます。具体的には、any()関数は与えられたイテラブル内の要素を順番に評価し、いずれかの要素が真であればTrueを返します。以下はその例です:

# リスト内の要素がいずれかがTrueかどうかを判定
my_list = [False, True, False]
result = any(my_list)
print(result)# True
# タプル内の要素がいずれかがTrueかどうかを判定
my_tuple = (0, '', False, True)
result = any(my_tuple)
print(result) # True
# イテレータ内の要素がいずれかがTrueかどうかを判定
my_generator = (x % 2 == 0 for x in range(1, 6))
result = any(my_generator)
print(result) # True
# 文字列内の文字がいずれかがTrueかどうかを判定
my_string = "Hello World"
result = any(char.isdigit() for char in my_string)
print(result) # False

any()関数は、条件に合致する要素が見つかった時点でその時点で処理を中断します。これは、与えられたイテラブルが非常に大きい場合に、処理時間を節約するのに役立ちます。

〆最後に〆

以上、間違い・ご意見は
次のアドレスまでお願いします。
最近は全て返信出来てませんが
適時、返信して改定をします。

nowkouji226@gmail.com

また、この記事はChatGPT社のOpenAI
の情報を参考として作成しています。

全体の纏め記事へ】

雑記の纏め記事に戻る

Python学習での情報まとめ

コメント

タイトルとURLをコピーしました