Pythonで真偽値(True/False)リストを初期化する3つの方法
Pythonでは、TrueやFalseといった真偽値(ブール値)だけを格納したリストが必要になる場面があります。例えば、フラグ管理や状態の初期化などがその代表例です。本記事では、真偽値のみを含むリストを作成する代表的な方法を3つ紹介します。
range関数とリスト内包表記を使う方法
range関数に必要な要素数を指定し、リスト内包表記(forループ)を使ってTrueまたはFalseを順に代入していきます。この方法なら、条件式を組み合わせてTrueとFalseを混在させたリストを作ることも可能です。
コード例
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では0がFalseとして扱われるため、メモリ効率を重視したバイナリデータの初期化に役立ちます。
コード例
res = list(bytearray(5))
# 結果
print("バイナリ要素を含むリスト : \n", res)
実行結果
上記のコードを実行すると、次の出力が得られます。
バイナリ要素を含むリスト : [0, 0, 0, 0, 0]
まとめ
用途に応じて使い分けるのがおすすめです。TrueとFalseを混在させたい場合はリスト内包表記、すべて同じ値で初期化するなら*演算子、メモリ効率を優先する数値リストにはbytearrayが適しています。
-
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,
-
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 を返し、そう