前回の記事が久しぶりに200いいねを超えて好評?だったので、今回は便利な組み込み関数を10個ご紹介します。
前回の記事はこちら
前回と合わせてこれで20個紹介することになりますが、Pythonには組み込み関数が71個あります。
以下の書籍ですべて学ぶことができるので、興味のある方は是非チェックしてください。
range(start, stop)
range関数は連続した数値を要素として持ちます。

for i in range(0, 2):
print(i)
0
1
for i in range(3, 8):
print(i)
3
4
5
6
7
for i in range(-2, 1):
print(i)
-2
-1
0
終端値は入らないので注意しましょう。
len(s)
オブジェクトの長さ (要素の数) を返します。引数はシーケンス (文字列、リスト、タプルなど) かコレクション (辞書、集合など) です。

文字列の長さを取得する
文字列の長さを取得します。
str_len = "Python"
print(len(str_len))
6
リストの長さを取得する
リストの長さを取得します。
list_len = [1, 2, 3]
print(len(list_len))
3
タプルの長さを取得する
タプルの長さを取得します。
tuple_len = (1, 2, 3, 4)
print(len(tuple_len))
4
辞書の長さを取得する
辞書の場合は、keyとvalueの組の数を取得します。
dict_len = {'1': 'red', '2': 'yellow', '3': 'blue'}
print(len(dict_len))
3
集合の長さを取得する
集合は重複している要素が削除されるので、削除された後の長さを取得します。
set_len = {3, 1, 2, 3, 2, 1, 1, 4}
print(set_len)
print(len(set_len))
{1, 2, 3, 4}
4
max・min(iterable, *, key=None)
max・minはイテラブルの中で最大・最小の要素を返しますが、
l = [4, 9, 15]
print(max(l))
print(min(l))
15
4
key引数を指定することができます。
(key引数には引数を1つ取る順序関数を指定します。具体的にはintやlenを指定します。)

l = ["4", "9", "15", "-125"]
print(max(l))
print(max(l, key=int))
print(max(l, key=len))
print(min(l))
print(min(l, key=int))
print(min(l, key=len))
9
15
-125
-125
-125
4
max・min(iterable, *, key=None)
の*
は、*
より後ろがキーワード専用引数であることを示します。
zip(*iterables)
ループ処理で使えるテクニックの1つにzip関数があります。zip関数は反復可能オブジェクトの各要素をひと組にすることができます。

nums = [1, 2, 3]
values = ['Python', 'Java', 'C++']
for num, color in zip(nums, values):
print(num, color)
1 Python
2 Java
3 C++
map(function, iterable)
関数をイテラブルの全ての要素に適用して結果を生成するイテレータを返します。

l = ["1", "2", "3"]
map_iterator = map(int, l)
for i in map_iterator:
print(i)
1
2
3
help()
この関数は対話的に使用します。
インタープリタにhelp()
と入力すると、ヘルプシステムが起動します。
入力を促されるので、試しにfor
と入力します。

for文に関する説明が出力されます。
help("for")
と入力しても同じ出力結果を得ることができます。

modules
やkeywords
と入力すると、その一覧が表示されます。
modules spam
と入力すると、名前または概要にspam
が含まれるモジュールリストが出力されます。
sorted(iterable, key=None)
keyには1引数関数を指定します。これは比較を行う前にリストの各要素に対して呼び出される関数です。
print(sorted("This is a test string from Python Academia".split()))
print(sorted("This is a test string from Python Academia".split(), key=str.lower))
['Academia', 'Python', 'This', 'a', 'from', 'is', 'string', 'test']
['a', 'Academia', 'from', 'is', 'Python', 'string', 'test', 'This']
ソートは安定(stable)であることが保証されています。これは同じ要素がある場合、元々の順序が維持されるということを意味します。

data = [('red', 1), ('blue', 1), ('red', 2), ('blue', 2)]
print(sorted(data, key=lambda d: d[0]))
[('blue', 1), ('blue', 2), ('red', 1), ('red', 2)]
issubclass(class, classinfo)
classがclassinfoのサブクラス(子クラス、派生クラス)である場合にTrue
を返します。
class BaseClass():
pass
class SubClass(BaseClass):
pass
class SubSubClass(SubClass):
pass
print(issubclass(SubClass, BaseClass))
True
isinstance(object, classinfo)
object引数がclassinfo引数に指定した型のインスタンスである場合にTrue
を返します。
print(isinstance(1, int))
print(isinstance("string", int))
True
False
おわり
最後までお読みいただきありがとうございました。
Pythonのコードをより効率的に書くためにも、
便利な組み込み関数を使いこなしていきましょう!