Pythonのlen関数の使い方
Modified: | Tags: Python
Pythonの組み込み関数len()
を使うと、リストや文字列など様々な型のオブジェクトのサイズ(要素数や文字数)を取得できる。
目次
len()でリストの要素数を取得
len()
の引数にリストlist
を指定するとその要素数が返される。
l = [0, 1, 2]
print(len(l))
# 3
source: len_usage.py
二次元配列(リストのリスト)の場合など、詳しくは以下の記事を参照。
- 関連記事: Pythonでリストのサイズ(要素数)を取得
len()でタプルの要素数を取得
len()
の引数にタプルtuple
を指定するとその要素数が返される。
t = (0, 1, 2)
print(len(t))
# 3
source: len_usage.py
len()で集合の要素数を取得
len()
の引数に集合set
を指定するとその要素数が返される。
s = {0, 1, 2}
print(len(s))
# 3
source: len_usage.py
集合についての詳細は以下の記事を参照。
len()で辞書の要素数を取得
len()
の引数に辞書dict
を指定するとその要素数が返される。
d = {'key_0': 0, 'key_1': 1, 'key_2': 2}
print(len(d))
# 3
source: len_usage.py
len()で文字列の文字数を取得
len()
の引数に文字列str
を指定するとその文字数が返される。
s = 'abcde'
print(len(s))
# 5
s = 'あいうえお'
print(len(s))
# 5
source: len_usage.py
半角も全角も1文字としてカウントされる。エスケープシーケンスについてなどの詳細は以下の記事を参照。
- 関連記事: Pythonで文字列の長さ(文字数)を取得
特殊メソッド__len__()
len()
を実行すると特殊メソッド__len__()
が呼ばれる。len(x)
はx.__len__()
と等価。
l = [0, 1, 2]
print(l.__len__())
# 3
s = 'abcde'
print(s.__len__())
# 5
source: len_usage.py
__len__()
が定義されていない型のオブジェクトをlen()
の引数に指定するとエラーになる。組み込み型では、数値(整数int
や浮動小数点数float
)や真偽値bool
などはエラーになるので注意。
i = 100
print(hasattr(i, '__len__'))
# False
# print(len(i))
# TypeError: object of type 'int' has no len()
source: len_usage.py
上の例のhasattr()
はオブジェクトが指定した属性・メソッドを持っているかを判定する組み込み関数。
自作のクラスでも__len__()
を定義することでlen()
に対する処理を実装できる。__len__()
は0
以上の整数を返す必要がある。ここでは説明のために単に100
を返している。
class MyClass:
def __len__(self):
return 100
mc = MyClass()
print(len(mc))
# 100
source: len_usage.py