【Python】組み込み関数の使い方一覧

Python

この記事では、Pythonの組み込み関数の使い方を解説します。

組み込み関数とは、プログラム言語にあらかじめ用意されている関数のことを言い、モジュールなどをインポートしなくても呼び出すことができます。

CONTENTS

絶対値[abs()]

数の絶対値を返します。

書式

引数にはint型・float型・complex型が指定できます。

abs(x)

サンプル

試しに色々な型の絶対値を出力してみます。

print(f'int型: {abs(-1)}')
print(f'float型: {abs(-5.61)}')
print(f'complex型: {abs(2j+1)}')

実行結果

int型: 1
float型: 5.61
complex型: 2.23606797749979

自作クラスに__abs__メソッドを定義することでabs関数の引数に指定できます。

class Test:
    def __abs__(self):
        return 'absです'

obj = Test()
print(abs(obj))

実行結果

absです

イテラブルオブジェクトの要素を判定する

all()

引数に指定したイテラブルオブジェクトの要素が全てTrueならばTrue、そうでなければFalseを返します。

イテラブルオブジェクトが空の場合はTrueを返します。

書式

all(iterable)

サンプル

flags = []
print(all(flags))

flags = [True, True]
print(all(flags))

flags = [True, False]
print(all(flags))

実行結果

True
True
False

any()

引数に指定したイテラブルオブジェクトの要素のいずれかがTrueならばTrue、全ての要素がFalseならばFalseを返します。

イテラブルオブジェクトが空の場合はFalseを返します。

書式

any(iterable)

サンプル

flags = []
print(any(flags))

flags = [True, True]
print(any(flags))

flags = [True, False]
print(any(flags))

flags = [False, False]
print(any(flags))

実行結果

False
True
True
False

文字列に変換する

ascii()

引数に指定されたオブジェクトを文字列として返します。

非ASCII文字(ひらがなや漢字など)が指定された場合はUnicode文字に変換された文字列が返されます。

書式

ascii(object)

サンプル

n = 123
print(f'123: {ascii(n)}')

s = 'Python'
print(f'Python: {ascii(s)}')

s = 'パイソン'
print(f'パイソン: {ascii(s)}')

実行結果

123: 123
Python: 'Python'
パイソン: '\u30d1\u30a4\u30bd\u30f3'

repr()

文字列を返します。

この関数は引数に指定したオブジェクトの__repr__メソッドを呼び出します。__repr__メソッドはeval関数に渡した際に同等の値を持つオブジェクトを生成する文字列を返します。

書式

repr(object)

サンプル

class TestObject:

    def __init__(self, arg):
        self.arg = arg

    def __str__(self):
        return f'arg = {self.arg}'
    
    def __repr__(self):
        return f'TestObject({self.arg})'

# インスタンス化
obj = TestObject(1)
print(f'str: {obj}')

print(f'repr: {repr(obj)}')

# eval関数で同等のオブジェクトを生成できる
e = eval(repr(obj))
print(f'eval: {e}')

実行結果

str: arg = 1
repr: TestObject(1)
eval: arg = 1

str()

文字列型のオブジェクトを返します。この関数は引数に指定されたオブジェクトに定義されている__str__メソッドを呼び出しています。

書式

str(object)

サンプル

class Obj:
    def __str__(self):
        return 'Objがstrに変換されました'


obj = Obj()
s = str(obj)

print(s)

# print関数も__str__メソッドの戻り値を出力するので以下でも結果は同じ
print(obj)

実行結果

Objがstrに変換されました
Objがstrに変換されました

2進数・8進数・16進数

bin()

引数に指定した整数を2進数文字列に変換します。

書式

bin(x)

サンプル

print(bin(2))

print(bin(-4))

実行結果

0b10
-0b100

oct()

整数を8進数文字列に変換します。

書式

oct(x)

サンプル

print(oct(1))

print(oct(8))

実行結果

0o1
0o10

hex()

整数を16進数の文字列に変換します。

書式

hex(x)

サンプル

print(hex(1))

print(hex(16))

実行結果

0x1
0x10

真偽値を生成・変換[bool()]

引数に渡された値を真理値判定手続きに基づいてTrueFalseに変換します。引数が省略された場合はFalseが返されます。

Falseと判定される値

  1. NoneFalse
  2. 数値型におけるゼロ
  3. 空文字や空の配列

書式

bool(x)

サンプル

# 引数省略
print(f'引数無し: {bool()}')

# 数値型(整数)
print(f'整数: 0={bool(0)},  1={bool(1)}')

# 文字列
print(f'文字列: ""={bool("")},  "abc"={bool("abc")}')

# 配列(リスト)
print(f'リスト: []={bool([])},  [1]={bool([1])}')

実行結果

引数無し: False
整数: 0=False,  1=True
文字列: ""=False,  "abc"=True
リスト: []=False,  [1]=True

デバッガ[breakpoint()]

breakpoint関数が呼び出された箇所からデバッガへ移行することができます。デバッガに移行することで1行ずつ処理を確認しながらデバッグすることが可能です。
※ バージョン3.7で追加

書式

breakpoint(*args, **kwargs)

サンプル

arg = 1

breakpoint()

print(1)
print(2)

arg = 99

print(5)

実行結果

> /Users/user/Desktop/Python/test.py(7)<module>()
-> print(1)
(Pdb) arg
1
(Pdb) n
1
> /Users/user/Desktop/Python/test.py(8)<module>()
-> print(2)
(Pdb) n
2
> /Users/user/Desktop/Python/test.py(10)<module>()
-> arg = 99
(Pdb) n
> /Users/user/Desktop/Python/test.py(12)<module>()
-> print(5)
(Pdb) arg
99
(Pdb) n
5
--Return--
> /Users/user/Desktop/Python/test.py(12)<module>()->None
-> print(5)
(Pdb) n

バイト配列

bytearray()

ミュータブル(可変)なバイト配列を返します。

引数に指定する値によって以下のように初期化方法が変わります。

  1. 文字列の場合: 文字列をバイト配列に変換する際のencodingを指定する必要がある
  2. 整数の場合: 指定した整数のサイズの空バイト配列が生成される
  3. 配列の場合: 配列の要素が初期値として使用されます。ただし、0 <= x < 256内の整数でなければなりません

書式

bytearray(source, encoding, errors)

サンプル

# 文字列
ba = bytearray('Hello', 'UTF-8')
print(ba)

# 整数
ba = bytearray(3)
print(ba)

# 配列
ba = bytearray([1, 2, 3])
print(ba)

実行結果

bytearray(b'Hello')
bytearray(b'\x00\x00\x00')
bytearray(b'\x01\x02\x03')

bytes()

イミュータブル(不変)なバイト配列を返します。

この関数はbytearray関数のイミュータブル版です。

書式

byte(source, encoding, errors)

サンプル

# 文字列
ba = bytes('Hello', 'UTF-8')
print(ba)

# 整数
ba = bytes(3)
print(ba)

# 配列
ba = bytes([1, 2, 3])
print(ba)

実行結果

b'Hello'
b'\x00\x00\x00'
b'\x01\x02\x03'

呼び出し可能オブジェクトか判定[callable()]

引数に指定したオブジェクトが呼び出し可能であればTrue、そうでなければFalseを返します。インスタンスを指定した場合はクラスに__call__メソッドが定義されている場合にTrueを返します。
※ バージョン3.2で追加

書式

callable(object)

サンプル

# 整数
print(f'整数: {callable(1)}')

# 組み込み関数
print(f'abs関数: {callable(abs)}')

# クラス
print(f'objectクラス: {callable(object)}')

# インスタンス(__call__メソッド無し)
obj = object()
print(f'インスタンス(callメソッド無し): {callable(obj)}')

# インスタンス(__call__メソッド無し)
class Obj:
    def __call__(self):
        return 'callしました'

obj = Obj()
print(f'インスタンス(callメソッド有り): {callable(obj)}')

実行結果

整数: False
abs関数: True
objectクラス: True
インスタンス(callメソッド無し): False
インスタンス(callメソッド有り): True

文字コード

【関連】Pythonの文字列から文字コードを取得する方法

chr()

引数に指定された文字コード(整数)を文字列に変換して返します。

書式

chr(i)

サンプル

n = 97
print(f'文字コード: {n}, 文字: {chr(n)}')

n = 192
print(f'文字コード: {n}, 文字: {chr(n)}')

n = 33
print(f'文字コード: {n}, 文字: {chr(n)}')

実行結果

文字コード: 97, 文字: a
文字コード: 192, 文字: À
文字コード: 33, 文字: !

ord()

1文字の文字列を文字コードに変換して返します。

書式

ord(c)

サンプル

print(ord('a'))

print(ord('A'))

print(ord('!'))

実行結果

97
65
33

クラスメソッド・スタティックメソッド

【関連】Pythonのクラスの使い方

classmethod()

クラスメソッドを定義するためのデコレータです。cls引数からクラスにアクセスすることができます。

書式

メソッドに上部に記述します。

class クラス名:
    @classmethod
    def クラスメソッド名(cls):
        なんらかの処理

サンプル

class C:

    def __init__(self, arg=0):
        self.arg = arg

    @classmethod
    def f(cls):
        return cls(9)

t = C.f()
print(t.arg)
print(type(t))

実行結果

9
<class '__main__.C'>

staticmethod()

メソッドを静的メソッドに変換できます。デコレータとして使われます。

書式

def クラス名:
    @staticmethod
    def メソッド名():
        何かしらの処理

サンプル

class Obj:
    @staticmethod
    def static_method():
        print('Objクラスのstatic_method')


Obj.static_method()

実行結果

Objクラスのstatic_method

コンパイルする

compile()

source引数に渡された値をコードオブジェクト、またはASTオブジェクトにコンパイルします。生成したコードオブジェクトはexec()で実行したりeval()で評価することができます。

書式

filename

コードの呼び出し元のファイルを指定する。ファイルから呼び出さないのであれば‘<sting>’を渡す。

mode

sourceによって指定するmodeを変更します。

  • ‘exec’: 一連の文からなる
  • ‘eval’: 単一の式
  • ‘single’: 単一の対話的文
compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

サンプル

# 文
source = '''a = 1
b = 2
ab = a + b
'''

# sourceをコンパイルしてコードオブジェクトを生成
code_obj = compile(source, '<string>', 'exec')

# コードオブジェクトの実行
exec(code_obj)
print(a, b, ab)  # コードオブジェクトを実行したことで生成された変数を呼び出す


# 単一の式
source = '1 + 2'

# sourceをコンパイルしてコードオブジェクトを生成
code_obj = compile(source, '<string>', 'eval')

# コードオブジェクトの実行
print(eval(code_obj))

実行結果

1 2 3
3

eval()

文字列の式を評価できます。

書式

eval(expression[, globals[, locals]])

サンプル

a = 1
b = 2

r = eval('a + b')
print(r)

実行結果

3

exec()

文字列の文をコードとして実行できます。

書式

exec(object[, globals[, locals]])

サンプル

obj = '''a = 1
b = 2
c = a + b
'''

exec(obj)
print(a, b, c)

実行結果

1 2 3

数値型

【関連】Pythonの数値を扱って演算をしてみよう!

complex()

複素数を生成したり文字列や数を複素数に変換できます。

書式

complex(real, imag)

サンプル

c = complex('1j')
print(f"complex('1j') = {c}")

c = complex()
print(f"complex() = {c}")

c = complex(1)
print(f"complex(1) = {c}")

c = complex(1, 2)
print(f"complex(1, 2) = {c}")

実行結果

complex('1j') = 1j
complex() = 0j
complex(1) = (1+0j)
complex(1, 2) = (1+2j)

float()

空(0.0)の浮動小数点数を生成します。引数が指定されている場合はその値をfloat型に変換します。

書式

float([x])

サンプル

f = float()
print(f'引数無し: {f}')

f = float('3.14')
print(f"'3.14': {f}")

f = float('3.14e-2')
print(f"'3.14e-2': {f}")

f = float(1)
print(f"1: {f}")

実行結果

引数無し: 0.0
'3.14': 3.14
'3.14e-2': 0.0314
1: 1.0

int()

整数オブジェクトを返します。

書式

int(x)

サンプル

# 空
i = int()
print(f'int(): {i}')

# 文字列
i = int('2')
print(f"int('2'): {i}")

# 浮動小数点数
i = int(3.14)
print(f'int(3.14): {i}')

実行結果

int(): 0
int('2'): 2
int(3.14): 3

属性関連

delattr()

オブジェクトから指定された属性を削除できます。

書式

delattr(object, name)

サンプル

# 空のクラス
class Obj:
    pass


# インスタンス化
obj = Obj()

# 動的に属性の追加
obj.arg = 1
# 属性の出力
print(dir(obj))

# argの削除
delattr(obj, 'arg')
# 属性の出力
print(dir(obj))

実行結果

['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'arg']
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']

getattr()

任意のオブジェクトから指定した名前の属性の値を取得します。指定された属性がない場合はデフォルトの値を渡しておくことでその値を返します。デフォルト値がない場合はAttributeErrorが送出されます。

書式

getattr(object, name, default)

サンプル

# rangeクラスのインスタンス生成
r = range(3)

# 属性の値の取得
stop = getattr(r, 'stop')
print(stop)

# 定義されていない属性(デフォルト有り)
length = getattr(r, 'length', len(r))
print(length)

# 定義されていない属性(デフォルト無し)
length = getattr(r, 'length')
print(length)

実行結果

3
3
AttributeError: 'range' object has no attribute 'length'

hasattr()

任意のオブジェクトに指定した文字列の属性が存在していればTrue、存在していなければFalseを返します。

書式

hasattr(object, name)

サンプル

# rangeクラスのインスタンス生成
r = range(3)

# 定義されている属性
print(hasattr(r, 'stop'))

# 定義されていない属性
print(hasattr(r, 'length'))

実行結果

True
False

setattr()

任意のオブジェクトの属性を変更・追加することができます。

書式

setattr(object, name, value)

サンプル

class Object:
    pass


obj = Object()

setattr(obj, 'string', 'objです')
print(obj.string)

実行結果

objです

配列

dict()

辞書を生成します。

【関連】Pythonのdictionary(ディクショナリ)とはなんぞや?【辞書の使い方】

書式

dict(**kwarg)

dict(mapping, **kwarg)

dict(iterable, **kwarg)

サンプル

d = dict()
print(d)

d = dict(one=1, two=2, three=3)
print(d)

d = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
print(d)

d = dict([('one', 1), ('two', 2), ('three', 3)])
print(d)

実行結果

{}
{'one': 1, 'two': 2, 'three': 3}
{'one': 1, 'two': 2, 'three': 3}
{'one': 1, 'two': 2, 'three': 3}

list()

リスト型のオブジェクトを返します。

【関連】Pythonのリスト(list)とはなんぞや?リストの使い方を知ろう!

書式

list(iterable)

サンプル

l = list()
print(l)

# setから変換
l = list({1, 2, 3})
print(l)

実行結果

[]
[1, 2, 3]

set()

セット型のオブジェクトを生成して返します。

【関連】Pythonのset(セット)とはなんぞや?【セットの使い方と集合演算】

書式

set(iterable)

サンプル

s = set([1, 2, 3])

# 重複する要素を持てない
s.add(1)

# 和集合
print(s.union([2, 3, 4]))

実行結果

{1, 2, 3, 4}

frozenset()

frozensetオブジェクトを返します。frozensetはイミュータブル(不変)なsetです。

【関連】Pythonのfrozensetとはなんぞや?【イミュータブルなセットの使い方】

書式

frozenset(iterable)

サンプル

fs = frozenset([1, 2, 3])

# 和集合
union = fs.union({2, 3, 4})
print(union)

実行結果

frozenset({1, 2, 3, 4})

tuple

タプル型のオブジェクトを返します。

【関連】Pythonのtuple(タプル)とはなんぞや?【タプルの使い方】

書式

tuple(iterable)

サンプル

t = tuple([1, 2, 3])
print(t)
print(type(t))

実行結果

(1, 2, 3)
<class 'tuple'>

属性名の取得[dir()]

属性名を取得します。

引数無しの場合は自分自身の属性を取得し、引数有りの場合は引数に指定したオブジェクトの属性を取得します。

書式

dir(object)

サンプル

print(dir())

# 新たに属性を生成
a = 10
l = []

print(dir())

# タプルの属性
print(dir(tuple))

実行結果

['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'l']
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']

商と剰余[divmod()]

商とあまりをまとめて計算できます。

書式

divmod(a, b)

サンプル

a = 3
b = 2
d, m = divmod(a, b)
print(f'{a} / {b} = {d}あまり{m}')


a = 4
b = 2
d, m = divmod(a, b)
print(f'{a} / {b} = {d}あまり{m}')

実行結果

3 / 2 = 1あまり1
4 / 2 = 2あまり0

要素とカウントを取得[enumrate()]

ループ処理可能なenumrateオブジェクトを返します。引数にはイテラブルオブジェクトを取ります。enumrateオブジェクトはループ処理される際に引数で受け取ったイテラブルオブジェクトの要素とカウントを含んだタプルを返します。

start引数を指定することでカウントの初期値を変更できます。

書式

enumrate(iterable, start=0)

サンプル

l = ['a', 'b', 'c']
e = enumerate(l)

print(list(e))


for i, val in enumerate(l, start=1):
    print(i, val)

実行結果

[(0, 'a'), (1, 'b'), (2, 'c')]
1 a
2 b
3 c

要素の抽出[filter()]

引数で受け取ったイテラブルオブジェクトの要素を条件によって抽出することができます。function引数がNoneならばイテラブルオブジェクトのFalseの要素を全て除去できます。

書式

filter(function, iterable)

サンプル

l = [0, 1, 2, 3, 4, 5, 6]
l = filter(lambda x: x % 2 == 0, l)
print(list(l))


l = [0, '', [], None]
l = filter(None, l)
print(list(l))

実行結果

[0, 2, 4, 6]
[]

フォーマット[format()]

value引数に渡された値を書式指定文字列によって書式化します。

【公式ドキュメント】書式指定文字列の文法

書式

format(value, format_spec)

サンプル

# 2進数化
val = 8
print(format(val, 'b'))

# 中央寄せ
val = '文字列'
print(format(val, '!^8'))

実行結果

1000
!!文字列!!!

属性の取得

globals()

グローバル領域の属性を全て辞書形式で取得できます。

書式

globals()

サンプル

def func():
    pass

arg = '変数'

print(globals())

実行結果

{'__name__': '__main__', '__doc__': None, ...(省略), 'func': <function func at 0x10f57eb00>, 'arg': '変数'}

locals()

ローカル領域の属性を全て辞書形式で取得できます。

書式

locals()

サンプル

def func():
    arg = 1
    print(locals())

func()

実行結果

{'arg': 1}

ハッシュ値[hash()]

オブジェクトのハッシュ値を返します。

書式

hash(object)

サンプル

print(hash(1))

print(hash('a'))

print(hash('a'))

実行結果

1
7360294545582337210
7360294545582337210

ヘルプシステムの起動[help()]

ヘルプシステムを起動します。引数を指定しなかった場合は対話的ヘルプシステムをコンソール上に起動します。

書式

help(object)

サンプル

help(abs)

実行結果

Help on built-in function abs in module builtins:

abs(x, /)
    Return the absolute value of the argument.

識別値の取得[id()]

オブジェクトの識別値を返します。

書式

id(object)

サンプル

obj = object()
print(id(obj))

r = range(3)
print(id(r))

実行結果

4402905200
4404231888

外部から値を受け取る[input()]

ターミナルやコマンドプロンプトから値を受け取ることができます。引数に文字列を指定することで標準出力にその値を出力してから値を受け取ります。

書式

input(prompt)

サンプル

val = input('val: ')
print(val)

実行結果

val: valです
valです

指定したクラスのインスタンスかどうか[isinstance()]

任意のインスタンスが指定したクラスのインスタンス化どうか、またはサブクラスのインスタンスかを判定します。

書式

isinstance(object, classinfo)

サンプル

obj = object()
print(isinstance(obj, object))

l = []
print(isinstance(l, object))

実行結果

True
True

指定したクラスのサブクラスかどうか[issubclass()]

任意のクラスが指定したクラスのサブクラスかどうかを判定できます。

書式

issubclass(class, classinfo)

サンプル

print(isinstance(object, object))

print(issubclass(list, object))

実行結果

True
True

イテレータオブジェクト[iter()]

イテレータオブジェクトを返します。引数を2つ指定した場合は第一引数のオブジェクトを繰り返し呼び出し、第二引数に指定した値が返されるとループが終了します。

書式

iter(object, sentinel)

サンプル

print(iter([1, 2, 3]))

実行結果

<list_iterator object at 0x1079eb410>

引数を2つ指定する

以下のコードはexitと入力することで終了できます。

l = []
for val in iter(input, 'exit'):
    l.append(val)
    
print(l)

実行結果

a
b
c
exit
['a', 'b', 'c']

オブジェクトの長さ[len()]

引数に指定したオブジェクトの長さを取得できます。

書式

len(s)

サンプル

l = [1, 2, 3]
print(len(l))

s = 'abcde'
print(len(s))

実行結果

3
5

任意の関数を各要素に適用する[map()]

任意の関数を指定したイテラブルオブジェクトの各要素に適用した結果のイテレータを返します。

書式

map(function, iterable)

サンプル

r = map(abs, [1, -2, 3, -4])
print(list(r))

# ラムダ式を使ってみる
r = map(lambda x: x / 2, [1, 2, 3, 4])
print(list(r))

実行結果

[1, 2, 3, 4]
[0.5, 1.0, 1.5, 2.0]

最大値・最小値

max()

渡された複数の値の中で最大のものを返します。

key引数

指定することでソート時に使用される順序付け関数を変更できる。

default引数

指定することで渡されたイテラブルオブジェクトが空の場合に返す値を変更できます。

書式

max(iterable, key, default)

または

max(arg1, arg2, ..., argN, key)

サンプル

# イテラブルオブジェクトを渡す
m = max([8, 1, 9, 2])
print(m)

# バラバラに値を渡す
m = max(8, 1, 9, 2)
print(m)

# keyを指定する
l = [range(2), range(3), range(1)]
m = max(l, key=lambda li: li.stop)
print(m)

実行結果

9
9
range(0, 3)

min()

渡された複数の値の中で最小のものを返します。

key引数

指定することでソート時に使用される順序付け関数を変更できる。

default引数

指定することで渡されたイテラブルオブジェクトが空の場合に返す値を変更できます。

書式

map(iterable, key, default)

または

map(arg1, arg2, ..., argN, key)

サンプル

# イテラブルオブジェクトを渡す
m = min([8, 1, 9, 2])
print(m)

# バラバラに値を渡す
m = min(8, 1, 9, 2)
print(m)

# keyを指定する
l = [range(2), range(3), range(1)]
m = min(l, key=lambda li: li.stop)
print(m)

実行結果

1
1
range(0, 1)

メモリビューオブジェクト[memoryview()]

任意のオブジェクトからメモリビューオブジェクトを生成します。

書式

引数にはbytes、bytearrayなどのバッファプロトコルをサポートしているオブジェクトを指定します。

memoryview(obj)

サンプル

mv = memoryview(b'abcde')

print(mv[0])
print(mv[-1])

実行結果

97
101

次の要素[next()]

イテレータの__next__メソッドを呼び出して次の要素を取得します。次の要素がなければStopIterationが送出されます。デフォルト値が設定されていればその値が返されます。

書式

next(iterator, default)

サンプル

it = iter([1, 2, 3])

print(next(it))
print(next(it))
print(next(it))
print(next(it, 'デフォルト値'))
print(next(it))

実行結果

1
2
3
デフォルト値
StopIteration

オブジェクトクラス[object()]

全てのクラスの基底クラスであるオブジェクトクラスを生成します。

書式

object()

サンプル

obj = object()
print(obj)

実行結果

<object object at 0x10211a070>

ファイル操作[open()]

任意のファイルを開いてファイルオブジェクトを返します。ファイルオブジェクトを使うことでファイルを読み込んだり書き込んだりすることができます。

【関連】Pythonのコード内からファイルを読み書きする方法

書式

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

サンプル

file_name = 'test.txt'

# 書き込み
f = open(file_name, 'w')
f.write('テスト')
f.close()

# コンテキストマネージャを利用した読み込み
with open(file_name, 'r') as f:
    print(f.read())

実行結果

テスト

累乗[pow()]

任意の累乗を計算できます。

書式

baseexp乗を返します。mod引数を指定することでbaseexp乗 % mod を返します。

pow(base, exp, mod)

サンプル

# 2の3乗
p = pow(2, 3)
print(p)

# 2の3乗 % 5 と等価
p = pow(2, 3, 5)
print(p)

実行結果

8
3

出力[print()]

任意のオブジェクトを標準出力に出力します。

【関連】Pythonの出力関数print()の使い方を学ぼう!

書式

  • sep: 区切り文字の指定
  • end: 末尾の文字
  • file: 出力先
  • flush: 真ならストリームを強制的にフラッシュする
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

サンプル

# 標準出力に出力
print('Hello World')

# 区切り文字の指定
print('a', 'b', 'c', sep='/')

# 末尾の文字の指定
print('data', end=': ')
print('abc')

# 出力先の変更
f = open('test.txt', 'w')
print('printで出力', file=f)
f.close()

実行結果

Hello World
a/b/c
data: abc

プロパティ[property()]

クラスにプロパティを定義できます。

【関連】Pythonのクラスにプロパティを定義して安全に変数を扱おう!

書式

property(fget=None, fset=None, fdel=None, doc=None)

または

@property

サンプル

class Object:

    def __init__(self, arg):
        self.__arg = arg

    # setter
    def _set_arg(self, arg):
        self.__arg = arg

    # getter
    def _get_arg(self):
        return self.__arg

    # deleter
    def _del_arg(self):
        self.__arg = None

    # プロパティの作成(引数に getter, setter, deleterの順で渡す)
    arg = property(_get_arg, _set_arg, _del_arg)


# インスタンス化
obj = Object(1)

# getter呼び出し
print(obj.arg)

# setter呼び出し
obj.arg = 5

# deleter呼び出し
del obj.arg

# getter呼び出し
print(obj.arg)

実行結果

1
None

範囲の生成[range()]

range型のオブジェクトを生成します。

【関連】Pythonのrange関数の使い方を知ろう!

書式

range(stop)

または

range(start, stop, step)

サンプル

for i in range(3):
    print(i)

実行結果

0
1
2

並び替え

reversed()

要素を逆順に返すイテレータオブジェクトを返します。

書式

reversed(seq)

サンプル

l = [8, 1, 9, 2]

r_l = reversed(l)
print(list(r_l))

実行結果

[2, 9, 1, 8]

sorted()

イテラブルオブジェクトの要素を並び替えたリストを返します。

書式

sorted(iterable, *, key=None, reverse=False)

サンプル

l = [8, 1, 9, 2]

# 昇順
s_l = sorted(l)
print(s_l)

# 降順
s_l = sorted(l, reverse=True)
print(s_l)

# keyの指定
s_l = sorted(l, key=lambda x: x % 2)
print(s_l)

実行結果

[1, 2, 8, 9]
[9, 8, 2, 1]
[8, 2, 1, 9]

値を小数で丸める[round()]

引数に渡された値の小数を丸めます。

【関連】Pythonの数値を扱って演算をしてみよう!

書式

round(number, ndigits)

サンプル

f =  3.14
print(round(f))

f = 2.5
print(round(f))

実行結果

3
2

スライス[slice()]

スライスオブジェクトを生成して返します。引数にはrange関数と同じ値を取ります。

書式

slice(stop)

または

slice(start, stop, step)

サンプル

l = [1, 2, 3, 4, 5, 6]

# l[:3] と同様
print(l[slice(3)])

# l[1:6:2] と同様
print(l[slice(1, 6, 2)])

実行結果

[1, 2, 3]
[2, 4, 6]

合計[sum()]

イテラブルオブジェクトの要素の合計を返します。

書式

sum(iterable, start=0)

サンプル

# 1 + 2 + 3
r = sum([1, 2, 3]) 
print(r)


# 初期値を指定
r = sum([1, 2, 3], 100) 
print(r)

実行結果

6
106

親クラスにアクセス[super()]

親クラスにアクセスできます。

【関連】Pythonの継承を知ろう! [オーバーライド・super・多重継承]

書式

super()

サンプル

class A:
    def __init__(self):
        print('Aクラスのコンストラクタが呼び出されました!')


class B(A):
    def __init__(self):
        super().__init__()
        print('Bクラスのコンストラクタが呼び出されました!')


b = B()

実行結果

Aクラスのコンストラクタが呼び出されました!
Bクラスのコンストラクタが呼び出されました!

型を確認[type()]

オブジェクトの型を確認することができます。

引数を3つ指定することで動的にクラスを定義することができます。

書式

type(object)

または

type(name, bases, dict)

サンプル

print(type(1))

print(type('文字'))

実行結果

<class 'int'>
<class 'str'>

動的にクラスを定義する

引数にはクラス名、基底クラス、属性の定義を渡します。

# TestClassを動的に定義
TestClass = type('TestType', (object,), dict(arg=1))

# インスタンス化
tc = TestClass()
print(tc)

# クラス変数にアクセス
print(TestClass.arg)

実行結果

<__main__.TestType object at 0x10c47c490>
1

__dict__の取得[vars()]

オブジェクトの__dict__属性を辞書型で返します。

引数を指定しないことでlocals関数と同じようにローカル領域の属性を取得できます。

書式

vars(object)

サンプル

class Object:
    a = 1
    def __init__(self):
        self.b = 2
        self._c = 3
        self.__d = 4
        e = 5

    def f(self):
        pass

    @property
    def d(self):
        return self.__d
    
    @d.setter
    def d(self, other):
        self.__d = other
    

obj = Object()
print(vars(obj))

実行結果

{'b': 2, '_c': 3, '_Object__d': 4}

locals関数と同じ

print(vars() == locals())

実行結果

True

イテラブルオブジェクトをまとめる[zip()]

複数のイテラブルオブジェクトの要素をまとめたイテレータを返します。

書式

zip(*iterables)

サンプル

l = [1, 2, 3]
t = (4, 5, 6, 7)

lt = zip(l, t)
print(list(lt))

実行結果

[(1, 4), (2, 5), (3, 6)]

__import__()

この関数はimport文により呼び出されます。

この関数を直接呼び出すことは推奨されていないので代わりにimportlib.import_module()を使ってください。

まとめ

今回はPythonの組み込み関数について簡単に解説しました。

とても多くの組み込み関数が用意されていて便利ですが、まとめて覚えるのは大変なので使いかながら慣れていきましょう!

今回の内容はここまでです。それではまたどこかで〜!

タイトルとURLをコピーしました