note.nkmk.me

Pythonのlen関数で様々な型のオブジェクトのサイズを取得

Date: 2018-06-06 / tags: Python
このエントリーをはてなブックマークに追加

Pythonの組み込み関数len()を使うと、リストや文字列など様々な型のオブジェクトのサイズ(要素数や文字数)を取得できる。

以下の内容について説明する。

  • リスト(list型)の要素数を取得
  • タプル(tuple型)の要素数を取得
  • 集合(set型)の要素数を取得
  • 辞書(dict型)の要素数を取得
  • 文字列(str型)の文字数を取得
  • NumPy配列ndarrayの最初の次元のサイズを取得
  • pandas.DataFrame, pandas.Seriesの行数・要素数を取得
  • 数値(intfloat)などに対してはエラーになるので注意
スポンサーリンク

リスト(list型)の要素数を取得

リスト(list型) をlen()の引数に指定するとその要素数を取得できる。

l = [0, 1, 2]

print(len(l))
# 3
source: len_usage.py

二次元配列(リストのリスト)の場合など、詳しくは以下の記事を参照。

タプル(tuple型)の要素数を取得

タプル(tuple型)をlen()の引数に指定するとその要素数を取得できる。

t = (0, 1, 2)

print(len(t))
# 3
source: len_usage.py

集合(set型)の要素数を取得

集合(set型)をlen()の引数に指定するとその要素数を取得できる。

s = {0, 1, 2}

print(len(s))
# 3
source: len_usage.py

集合についての詳細は以下の記事を参照。

辞書(dict型)の要素数を取得

辞書(dict型)をlen()の引数に指定するとその要素数を取得できる。

d = {'key0': 0, 'key1': 1, 'key2': 2}

print(len(d))
# 3
source: len_usage.py

文字列(str型)の文字数を取得

文字列(str型)をlen()の引数に指定するとその文字数を取得できる。

s = 'abcde'

print(len(s))
# 5

s = 'あいうえお'

print(len(s))
# 5
source: len_usage.py

全角半角についてやエスケープシーケンスについてなどの詳細は以下の記事を参照。

NumPy配列ndarrayの最初の次元のサイズを取得

NumPy配列numpy.ndarraylen()の引数に指定すると最初の次元のサイズを取得できる。

import numpy as np

a_1d = np.arange(3)

print(a_1d)
# [0 1 2]

print(len(a_1d))
# 3

a_2d = np.arange(12).reshape((3, 4))

print(a_2d)
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]

print(len(a_2d))
# 3

a_3d = np.arange(24).reshape((2, 3, 4))

print(a_3d)
# [[[ 0  1  2  3]
#   [ 4  5  6  7]
#   [ 8  9 10 11]]
#  [[12 13 14 15]
#   [16 17 18 19]
#   [20 21 22 23]]]

print(len(a_3d))
# 2
source: len_usage.py

各次元のサイズやすべての要素数を取得するには属性shape, sizeを使う。詳細は以下の記事を参照。

pandas.DataFrame, pandas.Seriesの行数・要素数を取得

pandas.DataFramelen()の引数に指定すると行数、pandas.Seriesを指定すると要素数を取得できる。

import pandas as pd

df = pd.DataFrame({'A': [0, 1, 2], 'B': [3, 4, 5]}, index=['a', 'b', 'c'])

print(df)
#    A  B
# a  0  3
# b  1  4
# c  2  5

print(len(df))
# 3

s = pd.Series([0, 1, 2], index=['a', 'b', 'c'])

print(s)
# a    0
# b    1
# c    2
# dtype: int64

print(len(s))
# 3
source: len_usage.py

pandas.DataFrameの列数、全要素数を取得したい場合は属性shape, sizeを使う。詳細は以下の記事を参照。

数値(intやfloat)などに対してはエラーになるので注意

特殊メソッド__len__が定義されていない型・クラスのオブジェクトをlen()の引数に指定するとエラーTypeErrorになる。

組み込み型では数値(int型やfloat型)や、真偽値(bool型)などはエラーになるので注意。

# print(len(100))
# TypeError: object of type 'int' has no len()

# print(len(0.1))
# TypeError: object of type 'float' has no len()

# print(len(True))
# TypeError: object of type 'bool' has no len()
source: len_usage.py
スポンサーリンク
シェア
このエントリーをはてなブックマークに追加

関連カテゴリー

関連記事