Python list()関数は非常に強力なデータ構造の1つです。この投稿では、list()の基本的な使い方と効率的な活用方法を紹介します。プログラミング初心者から上級者まで知っておくべき必須の概念を分かりやすく解説しますので、最後までお読みください。
目次
Python list()とは何か?
list()は、Pythonでリスト型のデータ構造を作成するための関数です。リストは複数の値を1つの変数に保存できる可変のシーケンス型データ構造です。ここで「可変」とは、リストに値を追加したり削除したりできることを意味します。リストは配列に似ていますが、Pythonのリストはさまざまなタイプのデータを保存できる点が特徴です。たとえば、1つのリストに整数、文字列、浮動小数点数を一緒に保存することができます。
list()基本の使い方
リストは次の2つの方法で作成できます。
- 角括弧を使用する方法:
my_list = [1, 2, 3, 4]
- list()関数を使用する方法:
my_list = list([1, 2, 3, 4])
どちらの方法でも、リストを作成する結果は同じです。list()関数は、空のリストを作成したり、他のイテラブルオブジェクトをリストに変換するためにも使用されます。
# 空のリストを作成
empty_list = []
print(empty_list)
empty_list = list()
print(empty_list)
# 文字列をリストに変換
str_list = list("hello")
print(str_list)
以下の図では、空のリストを作成した結果と、文字列をリストに変換した結果を確認できます。
リストの主な機能
要素を追加する: append()
リストに新しい要素を追加するには、append()メソッドを使用します。このメソッドは、リストの末尾に要素を追加します。
my_list = [1, 2, 3]
my_list.append(4)
print(my_list)
以下の図で、my_listの末尾に4が追加されたことを確認できます。
複数の要素を追加する: extend()
extend()メソッドを使うと、他のリストやイテラブルオブジェクトの要素を一度に追加できます。
my_list.extend([5, 6])
print(my_list)
以下の図では、リスト[5, 6]の値がmy_listの末尾に追加されたことが確認できます。
要素を挿入する: insert()
特定の位置に要素を挿入する場合は、insert()メソッドを使用します。インデックスを指定して、希望の位置に値を挿入できます。
my_list = [1, 2, 4]
my_list.insert(2, 3) # インデックス2に3を挿入
print(my_list)
以下の図では、インデックス2に新しい要素3が挿入され、もともとインデックス2にあった4はインデックス3に移動したことが確認できます。
要素を削除する: remove(), pop(), del
リストから要素を削除するには、さまざまな方法があります。listメソッドのremove()やpop()、またはPythonのコマンドdelを使って削除できます。
- remove(): 最初に見つかった指定の要素をリストから削除します。
- pop(): 指定されたインデックスの要素を削除してその値を返します。インデックスを指定しない場合、末尾の要素が削除されます。
- del: delコマンドを使用してリストの特定のインデックスにある要素を削除します。
Pythonmy_list = [1, 2, 3, 4, 5, 2, 3, 4]
my_list.remove(3)
print(my_list)
popped_value = my_list.pop(1)
print(my_list)
print(popped_value)
popped_value = my_list.pop()
print(my_list)
print(popped_value)
del my_list[0]
print(my_list)
1〜3行目はremove()
メソッドを使用して、最初に見つかった3を削除します。5〜7行目はpop()
メソッドを使用して1番インデックスの値を削除します。8〜9行目はpop()
メソッドを使用して最後の要素を削除します。12〜13行目はdel
コマンドを使用して、0番インデックスの値を削除します。以下は上記のコードを実行した結果です。
リストを並べ替える: sort(), sorted()
リストはsort()メソッドを使用して昇順に並べ替えることができます。降順に並べ替える場合は、reverse=Trueオプションを追加します。
my_list = [3, 1, 5, 4, 2]
my_list.sort()
print(my_list)
my_list.sort(reverse=True)
print(my_list)
以下の図では、sort()
メソッドを実行して昇順に並べ替えた結果と、sort()
メソッドにreverse=True
を適用して降順に並べ替えた結果を確認できます。
sorted()関数は、新しいリストとして並べ替えたリストを返しますが、sort()メソッドは元のリストを変更します。
my_list = [3, 1, 5, 4, 2]
sorted_list = sorted(my_list)
print(my_list)
print(sorted_list)
以下の図では、my_listはそのままで、sorted_listに並べ替えられた結果が保存されていることが確認できます。
リストを逆順にする: reverse()
reverse()メソッドは、リストの順序を逆にします。このメソッドは並べ替えとは関係なく、現在の順序を単に逆にするだけです。
my_list = [1, 3, 5, 2, 4]
my_list.reverse()
print(my_list)
以下の図では、リストの順序が逆になった結果を確認できます。
リストの長さを求める: len()
リストの要素の数を知りたい場合は、len()関数を使用します。
my_list = [1, 2, 3, 4, 3, 2, 5]
print(len(my_list))
以下の図では、リストの長さが7であることを確認できます。
リストに要素が含まれているか確認する: in演算子
リストに特定の値が含まれているかを確認するには、in演算子を使用します。
my_list = [1, 2, 3, 4]
print(3 in my_list)
print(5 in my_list)
以下の図では、3がリストに含まれているためTrueが返され、5はリストに含まれていないためFalseが返されることを確認できます。
リストをコピーする
リストをコピーする際に、単に代入演算子を使用するのは避けましょう。代入演算子を使うと、同じオブジェクトを参照することになるためです。リストをコピーするには、浅いコピーができるcopy()メソッドやlist()関数、または深いコピーが可能なdeepcopy()を使用します。ここでは浅いコピーを使った方法を見てみましょう。
original = [1, 2, 3]
copy_list = original.copy()
print(copy_list)
以下の図では、浅いコピーを使ってリストをコピーした例を確認できます。
注意事項
- リストは可変型のデータ型であるため、元のリストを変更するメソッドはリスト自体を変更します。元のデータを保持したい場合は、リストをコピーして作業するのが良いでしょう。
- リストはインデックスを0から開始します。この点を考慮してインデックス操作を行う必要があります。
まとめ
Pythonのlist()
関数は、データを保存・管理するのに非常に便利なツールです。append()
, insert()
, remove()
などのメソッドを使ってリストを柔軟に操作でき、sort()
, reverse()
などのメソッドを使えばリストの順序も簡単に変更できます。リストはPythonで最もよく使われるデータ型の一つであるため、この文で紹介した機能を習得すれば、コードの作成や問題解決能力が大いに向上するでしょう。