Python - 文法 - 配列・リスト(list) - 空か?

 クラウディア
1. 概要
2. [] と比較
3. not
4. len
5. 例題

1. 概要

 配列(list)の中身が、空(から)かどうかっちゅうのを調べるのにいくつか方法があるんですな。  以下に、紹介しますが、結論から言うと次項で紹介する方法が、いいらしい。  本ページは、下記のサイトを参考にさせていただきました。
[Python] listが空かどうか判定する方法2つ #Python」
「Pythonのfilter()でリストから条件を満たす要素を抽出・削除

2. [] と比較


a = []
 で初期化しておいて、何かの処理の後。

if a == []:
  print("a は空のリストです")
 と判断できるというもの。

3. not

 「Python」の「list」は、空であれば「False」、中身が入ってれば「True」を返す性質があるからというもので。

if not a:
  print("a は空です")
 と書けます。

4. len

 「list」の要素数を調べてサイズが「0」であれば空ということにして。

if len(a) <= 0:
  print("a は空です")
 という書き方もできます。  参考サイトでは。

if len(a) == 0:
  print("a は空です")
 という書き方をしていますが、わたしは、絶対に負の値になることはないとわかっていても、「<=」を使うことにしていますのでね。

5. 例題

 ここまでを踏まえて。

a = []

if a == []:
  print("a は空のリストです")
else:
  print("a は空のリストではないです")

if not a:
  print("a は空です")
else:
  print("a は空ではないです")

if len(a) <= 0:
  print("a は空です")
else:
  print("a は空ではないです")

a = {}

if a == []:
  print("a は空のリストです")
else:
  print("a は空のリストではないです")

if not a:
  print("a は空です")
else:
  print("a は空ではないです")

if len(a) <= 0:
  print("a は空です")
else:
  print("a は空ではないです")
 を実行すると。

a は空のリストです
a は空です
a は空です
a は空のリストではないです
a は空です
a は空です
 という結果になって、最初の例が納得いくわけです。  コーディング規約では、「len」が進められているそうですが・・・。  対象が、「list」だか、「dic」だかわからないときは、「not」か「len」ですね。
earthcar(アースカー)