3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

前回の記事が久しぶりに200いいねを超えて好評?だったので、今回は便利な組み込み関数を10個ご紹介します。

前回の記事はこちら

前回と合わせてこれで20個紹介することになりますが、Pythonには組み込み関数が71個あります。

以下の書籍ですべて学ぶことができるので、興味のある方は是非チェックしてください。

range(start, stop)

range関数は連続した数値を要素として持ちます。

In
for i in range(0, 2):
    print(i)
Out
0
1
In
for i in range(3, 8):
    print(i)
Out
3
4
5
6
7
In
for i in range(-2, 1):
    print(i)
Out
-2
-1
0

終端値は入らないので注意しましょう。

len(s)

オブジェクトの長さ (要素の数) を返します。引数はシーケンス (文字列、リスト、タプルなど) かコレクション (辞書、集合など) です。

文字列の長さを取得する

文字列の長さを取得します。

In
str_len = "Python"
print(len(str_len))
Out
6

リストの長さを取得する

リストの長さを取得します。

In
list_len = [1, 2, 3]

print(len(list_len))
Out
3

タプルの長さを取得する

タプルの長さを取得します。

In
tuple_len = (1, 2, 3, 4)

print(len(tuple_len))
Out
4

辞書の長さを取得する

辞書の場合は、keyとvalueの組の数を取得します。

In
dict_len = {'1': 'red', '2': 'yellow', '3': 'blue'}

print(len(dict_len))
Out
3

集合の長さを取得する

集合は重複している要素が削除されるので、削除された後の長さを取得します。

In
set_len = {3, 1, 2, 3, 2, 1, 1, 4}

print(set_len)
print(len(set_len))
Out
{1, 2, 3, 4}
4

max・min(iterable, *, key=None)

max・minはイテラブルの中で最大・最小の要素を返しますが、

In
l = [4, 9, 15]

print(max(l))
print(min(l))
Out
15
4

key引数を指定することができます。
(key引数には引数を1つ取る順序関数を指定します。具体的にはintやlenを指定します。)

In
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))
Out
9
15
-125
-125
-125
4

max・min(iterable, *, key=None)*は、*より後ろがキーワード専用引数であることを示します。

zip(*iterables)

ループ処理で使えるテクニックの1つにzip関数があります。zip関数は反復可能オブジェクトの各要素をひと組にすることができます。

In
nums = [1, 2, 3]
values = ['Python', 'Java', 'C++']

for num, color in zip(nums, values):
   print(num, color)
Out
1 Python
2 Java
3 C++

map(function, iterable)

関数をイテラブルの全ての要素に適用して結果を生成するイテレータを返します。

In
l = ["1", "2", "3"]

map_iterator = map(int, l)

for i in map_iterator:
    print(i)
Out
1
2
3

help()

この関数は対話的に使用します。
インタープリタにhelp()と入力すると、ヘルプシステムが起動します。
b2781fe89635-20241101.png

入力を促されるので、試しにforと入力します。

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

moduleskeywordsと入力すると、その一覧が表示されます。

f33c07d752dd-20241101.png

modules spamと入力すると、名前または概要にspamが含まれるモジュールリストが出力されます。

224bc08d1994-20241101.png

sorted(iterable, key=None)

keyには1引数関数を指定します。これは比較を行う前にリストの各要素に対して呼び出される関数です。

In
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))
Out
['Academia', 'Python', 'This', 'a', 'from', 'is', 'string', 'test']
['a', 'Academia', 'from', 'is', 'Python', 'string', 'test', 'This']

ソートは安定(stable)であることが保証されています。これは同じ要素がある場合、元々の順序が維持されるということを意味します。

In
data = [('red', 1), ('blue', 1), ('red', 2), ('blue', 2)]

print(sorted(data, key=lambda d: d[0]))
Out
[('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
In
print(issubclass(SubClass, BaseClass))
Out
True

isinstance(object, classinfo)

object引数がclassinfo引数に指定した型のインスタンスである場合にTrueを返します。

インスタンスとはクラスを使って実際に作った物を言います。

In
print(isinstance(1, int))
print(isinstance("string", int))
Out
True
False

おわり

最後までお読みいただきありがとうございました。
Pythonのコードをより効率的に書くためにも、
便利な組み込み関数を使いこなしていきましょう!

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?