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」ですね。
|
|