Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで真偽値(True/False)リストを初期化する3つの方法

Pythonでは、TrueFalseといった真偽値(ブール値)だけを格納したリストが必要になる場面があります。例えば、フラグ管理や状態の初期化などがその代表例です。本記事では、真偽値のみを含むリストを作成する代表的な方法を3つ紹介します。

range関数とリスト内包表記を使う方法

range関数に必要な要素数を指定し、リスト内包表記(forループ)を使ってTrueまたはFalseを順に代入していきます。この方法なら、条件式を組み合わせてTrueFalseを混在させたリストを作ることも可能です。

コード例

res = [True for i in range(6)]
# 結果
print("真偽値を含むリスト : \n", res)

実行結果

上記のコードを実行すると、次の出力が得られます。

真偽値を含むリスト :
[True, True, True, True, True, True]

*演算子を使う方法

*演算子(アスタリスク)は、同じ値を指定した回数だけ繰り返すことができます。これを利用すると、同一の真偽値で満たされたリストを簡潔に作成できます。すべて同じ値で初期化したい場合には、最もシンプルで読みやすい方法です。

コード例

res = [False] * 6
# 結果
print("真偽値を含むリスト : \n", res)

実行結果

上記のコードを実行すると、次の出力が得られます。

真偽値を含むリスト :
[False, False, False, False, False, False]

bytearray関数を使う方法

bytearray関数を使うと、デフォルト値として0が格納されたリストを作成できます。厳密には真偽値ではなく整数(0)ですが、Pythonでは0Falseとして扱われるため、メモリ効率を重視したバイナリデータの初期化に役立ちます。

コード例

res = list(bytearray(5))
# 結果
print("バイナリ要素を含むリスト : \n", res)

実行結果

上記のコードを実行すると、次の出力が得られます。

バイナリ要素を含むリスト :
[0, 0, 0, 0, 0]

まとめ

用途に応じて使い分けるのがおすすめです。TrueFalseを混在させたい場合はリスト内包表記、すべて同じ値で初期化するなら*演算子、メモリ効率を優先する数値リストにはbytearrayが適しています。

  1. Pythonのリスト操作入門:連結・繰り返しなど基本のシーケンス操作まとめ

    Pythonのリストは、文字列と同じように + 演算子と * 演算子を受け付けます。+ は連結、* は繰り返しを意味する点も文字列と同様ですが、異なるのは結果が新しいリストとして返されるという点です。実際には、リストは前章で文字列に対して使った汎用的なシーケンス操作をすべてサポートしています。以下の表に、代表的な操作をまとめました。リストに対する主なシーケンス操作一覧Python式結果説明len([1, 2, 3])3長さ(要素数)[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]連結[Hi!] * 4[Hi!, Hi!, Hi!, Hi!]繰り返し3 in [1,

  2. Pythonのブール演算入門|and・or・notの基本と動作を解説

    Pythonにおけるブール演算の基本 Pythonには、条件分岐や繰り返し処理で欠かせない基本的なブール(論理)演算として、and、or、not の3種類が用意されています。これらの演算子は真偽値(True / False)だけでなく、任意の値やオブジェクトに対して使用できるのが特徴です。 and 演算子 x and y の形式で記述します。x が偽(false)と評価される場合は x をそのまま返し、そうでなければ y を返します。つまり、左側の値が真である場合にのみ、右側の値が結果となります。 or 演算子 x or y の形式で記述します。x が偽と評価される場合は y を返し、そう