Categories: Python

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

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

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

それでは、組み込み関数の使い方を見ていきましょう!

もくじ
  1. 絶対値: abs()
  2. イテラブルオブジェクトの要素を判定する
  3. 文字列に変換する
  4. 2進数・8進数・16進数に変換
  5. 真偽値を生成・変換: bool()
  6. デバッガ: breakpoint()
  7. バイト配列
  8. 呼び出し可能オブジェクトか判定: callable()
  9. 文字コード
  10. クラスメソッド・スタティックメソッド
  11. コンパイルする
  12. 数値型
  13. 属性関連
  14. 配列
  15. 属性名の取得: dir()
  16. 商と剰余: divmod()
  17. 要素とカウントを取得: enumrate()
  18. 要素の抽出: filter()
  19. フォーマット: format()
  20. 属性の取得
  21. ハッシュ値: hash()
  22. ヘルプシステムの起動: help()
  23. 識別値の取得: id()
  24. 外部から値を受け取る: input()
  25. 指定したクラスのインスタンスかどうか: isinstance()
  26. 指定したクラスのサブクラスかどうか: issubclass()
  27. イテレータオブジェクト: iter()
  28. オブジェクトの長さ: len()
  29. 任意の関数を各要素に適用する: map()
  30. 最大値・最小値
  31. メモリビューオブジェクト: memoryview()
  32. 次の要素: next()
  33. オブジェクトクラス: object()
  34. ファイル操作: open()
  35. 累乗: pow()
  36. 出力: print()
  37. プロパティ: property()
  38. 範囲の生成: range()
  39. 並び替え
  40. 値を小数で丸める: round()
  41. スライス: slice()
  42. 合計: sum()
  43. 親クラスにアクセス: super()
  44. 型を確認: type()
  45. __dict__の取得: vars()
  46. イテラブルオブジェクトをまとめる: zip()
  47. __import__()
  48. まとめ

絶対値: 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 を返します。

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

サンプル

flags = []
print(all(flags))

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

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

実行結果

True
True
False

any()

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

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

サンプル

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()関数 は、引数に指定されたオブジェクトを文字列として返します。非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__メソッド を呼び出します。

__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__メソッド を呼び出しています。

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に変換されました

Link文字列の使い方

2進数・8進数・16進数に変換

bin()

bin()関数は、引数に指定した整数を2進文字列に変換します。

bin(x)

サンプル

print(bin(2))

print(bin(-4))

実行結果

0b10
-0b100

oct()

oct()関数 は、整数を8進文字列に変換します。

oct(x)

サンプル

print(oct(1))

print(oct(8))

実行結果

0o1
0o10

hex()

hex()関数 は、整数を16進文字列に変換します。

hex(x)

サンプル

print(hex(1))

print(hex(16))

実行結果

0x1
0x10

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

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

False と判定される値
  • None と False
  • 数値型におけるゼロ
  • 空文字や空の配列
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 

参考 pdb --- Python デバッガ

バイト配列

bytearray()

ミュータブル(可変)なバイト配列を返します。
引数に指定する値によって以下のように初期化方法が変わります。

  • 文字列の場合: 文字列をバイト配列に変換する際のencodingを指定する必要がある
  • 整数の場合: 指定した整数のサイズの空バイト配列が生成される
  • 配列の場合: 配列の要素が初期値として使用されます。ただし、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()関数のイミュータブル版です。

bytes(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】文字コードを取得する方法を解説この記事では、Python で文字コードを取得する方法を解説します。パソコン内部で文字は「文字コード」と呼ばれる整数で表現されています。なぜ文字が表示できるかというと、出力する際に Unicode を元に整数から文字という記号に変換しているからです。...

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】クラス(class)の定義方法と使い方この記事では、Pythonのクラス(class)の定義と使い方を解説します。クラスとは、「型(オブジェクト)」を定義するための機能です。 クラスを用いることでデータ(属性)と機能(メソッド)を一緒にまとめることができ、抽象的な概念を定義することができます。...

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() で評価することができます。

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

filename

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

mode

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

  • 'exec': 一連の文からなる
  • 'eval': 単一の式
  • 'single': 単一の対話的文

サンプル

# 文
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

参考compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

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】数値型の種類と使い方この記事では、Python で数値を扱うデータ型の種類と演算方法を解説します。Python には、整数を扱うための int型、浮動小数点数を扱うための float型、 複素数を扱うための complex型 などが用意されています。それでは、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です

配列

【Python】1つの変数で複数のオブジェクトを扱えるデータ型の種類と特徴【配列(コレクション)】この記事では、Python の配列(コレクション)の種類と特徴について解説します。配列は、1つのオブジェクトで複数のデータを取り扱うことができます。Python には複数の配列が用意されていて それぞれ異なった特徴を持ちます。...

dict()

辞書を生成します。

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}
【Python】辞書(マップ)の定義と使い方【dict】この記事では、Pythonの辞書の使い方を解説します。辞書はマップや連想配列と呼ばれ key と value の2つの値を用いて扱われます。名前(key) と 値(value) を 紐つけることで key から value を呼び出すことができます。...

list()

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

list(iterable)

サンプル

l = list()
print(l)

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

実行結果

[]
[1, 2, 3]
【Python】list(リスト)の定義と使い方この記事では、Pythonのリスト(list)の使い方を解説します。リストは、要素の追加・変更・削除が行え、汎用性が高いシーケンスの1つです。最もよく使用されるコレクションなのでしっかり学んでいきましょう。それでは、リストの使い方を見ていきましょう!...

set()

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

set(iterable)

サンプル

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

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

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

実行結果

{1, 2, 3, 4}
【Python】set(セット)の使い方と集合演算を解説この記事では、Pythonのset(セット)の使い方を解説します。setとは、リストのように要素を複数持てるコレクションの一種ですが、重複する要素を格納することができない特殊なオブジェクトです。また、集合演算することができます。setの使い方を見ていきましょう!...

frozenset()

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

frozenset(iterable)

サンプル

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

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

実行結果

frozenset({1, 2, 3, 4})
【Python】frozensetの使い方と集合演算この記事では、Pythonのfrozensetについて解説します。 frozensetは、更新できない(イミュータブルな)setで...

tuple

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

tuple(iterable)

サンプル

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

実行結果

(1, 2, 3)
<class 'tuple'>
【Python】tuple(タプル)の定義や使い方この記事では、Pythonの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
!!文字列!!!

Link書式指定文字列の文法 — Python 3.9.1 ドキュメント

属性の取得

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

Linkバイト型のデータをハッシュ化する

ヘルプシステムの起動: 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()

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

max(iterable, key, default)

または

max(arg1, arg2, ..., argN, key)
  • key: ソート時に使用される順序付け関数を変更できる。
  • default: 渡されたイテラブルオブジェクトが空の場合に返す値を変更できます。

サンプル

# イテラブルオブジェクトを渡す
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()

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

map(iterable, key, default)

または

map(arg1, arg2, ..., argN, key)
  • key: ソート時に使用される順序付け関数を変更できる。
  • default: 渡されたイテラブルオブジェクトが空の場合に返す値を変更できます。

サンプル

# イテラブルオブジェクトを渡す
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()

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

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())

実行結果

テスト
【Python】open関数を使ってファイルを読み書きする方法を解説この記事では、Pythonのopen関数を使ってソースコード内からファイルを読み書きする方法を解説します。Pythonでファイルを読み書きするには、open関数を使って生成したファイルオブジェクトを通してファイルにデータを書き込んだり、ファイルのデータを読み込んだりします。それでは、ファイルを読み書きする方法を見ていきましょう!...

累乗: 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()

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

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

サンプル

# 標準出力に出力
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
【Python】print関数でオブジェクトを出力する方法この記事では、Pythonのprint()関数の使い方を解説します。print()関数を使うことで色々なオブジェクトを文字列として画面(標準出力)に表示することができます。演算結果などを途中で確認することができ、デバッグする際に頻繁に使用されます...

プロパティ: property()

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

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
【Python】プロパティの定義と使い方を解説この記事では、Pythonのプロパティの使い方を解説します。プロパティとは、クラスに定義したインスタンス変数を取得・代入・削除する際、何かしらの処理を加えたいなぁ と思った時に使う機能です。プロパティを実装することで安全で誰でも使いやすいクラスを実装することができます。...

範囲の生成: range()

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

range(stop)

または

range(start, stop, step)

サンプル

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

実行結果

0
1
2
【Python】range関数の使い方(数列の生成)この記事では、Pythonのrange関数の使い方を解説します。range関数を使うことで開始値から終了値の範囲を持ったrangeオブジェクトを生成できます。生成したrangeオブジェクトはfor文に渡すことで任意の回数だけループ処理させたりすることができます。...

並び替え

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()

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

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]
【Python】スライスを使ってリストなどのシーケンスの要素に部分的にアクセスする方法この記事では、Pythonのスライスの使い方を解説します。スライスは、シーケンスオブジェクトの要素を範囲で選択できます。選択した要素は、取得・変更・削除を行うことができます。それでは、スライスの使い方を見ていきましょう!...

合計: 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()

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

super()

サンプル

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


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


b = B()

実行結果

Aクラスのコンストラクタが呼び出されました!
Bクラスのコンストラクタが呼び出されました!
【Python】継承の定義と使い方【派生クラスの定義】この記事では、Pythonの継承の使い方について解説します。継承を使うことでクラスの性質を引継ぎ、拡張・変更した新しいクラスを定義することができます。もちろん組み込み型のクラスを継承することもできます。それでは、Pythonの継承の使い方を見ていきましょう!...

型を確認: 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 の組み込み関数について簡単に解説しました。

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

それでは今回の内容はここまでです!ではまたどこかで〜( ・∀・)ノ

参考組み込み関数

ゆうまる

独学でプログラミングを勉強しているおじさん。いろんな言語を勉強したが浅く広くなためあまり仕事につながらない。また忘れっぽいため自分のブログを備忘録としても使っている。産まれてこのかたずっとネコを飼ってる生粋のネコ派。最近お腹が出てきて筋トレに奮闘中!

View Comments

Recent Posts

【Dart】コンストラクタのデフォルト引数について

Dartのコンストラクタのデフォルト引数…

2週間 ago

【Unity】有料アセットを無料で手に入れる方法

この記事では、Unityの有料アセットを…

4か月 ago

【Python】任意の秒数だけ処理を一時停止する方法【sleep()関数】

この記事では、Pythonで任意の秒数だ…

1年 ago

【Python】Wordの文書の新規作成と読み書き

この記事では、Pythonを使ってWor…

1年 ago

【Python】メタクラスって結局なんなの?

この記事では、Pythonのメタクラスに…

1年 ago