このチュートリアルでは、Python リスト メソッドを使用して、Python リストに要素を追加、変更、削除する方法を学習します。
Python でプログラミングを始める場合、リストは最初に学ぶ組み込みデータ構造の 1 つです。これから数分間で、Python リストの基本を確認し、リストを操作するときに使用できるいくつかの便利なリスト メソッドについて説明します。
さぁ、始めよう!
Python リストの概要
Python では、リストは同じまたは異なるデータ型の 項目のコレクション です。 for ループなどのループ構造を使用して、コレクションをループして項目にアクセスできます。
すべての Python 反復可能オブジェクトと同様に、リストはゼロ インデックスに従い、スライス操作をサポートします。
これらは 変更可能なコレクション であるため、適切な場所で変更できます。これには、リストへの要素の追加と削除、特定の順序での要素の並べ替え、要素の順序の逆転などが含まれます。 Python の組み込みリスト メソッドは、これらのアクションの実行に役立ちます。
次に、いくつかの便利な Python リスト メソッドを見てみましょう。
Python の組み込みリスト メソッド
このセクションでは、便利なリストメソッドをいくつか学びます。これらのリスト メソッドの動作を確認するためのサンプルをコード化します。
次の
pgm_langs
リストを使用します。これは、一般的なプログラミング言語の名前を含む文字列のリストです。
pgm_langs = ['Python','Go','Rust','JavaScript']

insert() を使用してリスト項目を挿入する
特定のインデックスに要素を挿入したい場合があります。これを行うには、
insert()
メソッドを使用できます。
insert()
リスト メソッドの呼び出しには次のものが含まれます。
- 要素を挿入するインデックス、および
- 挿入する要素。
index()
メソッドを使用してインデックス 1 に「Scala」を挿入しましょう。
pgm_langs = ['Python','Go','Rust','JavaScript']
pgm_langs.insert(1,'Scala')
print(pgm_langs)
# Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript']

append() を使用してリストに項目を追加する

場合によっては、リストの最後に要素を追加する必要があるかもしれません。これを行うには、
append()
メソッドを使用できます。
append()
メソッドを使用して、文字列「Java」をリストの末尾に追加してみましょう。
pgm_langs.append('Java')
print(pgm_langs)
# Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript', 'Java']
extend() で Iterable を追加する
append()
メソッドを使用して単一の項目を追加できることはご存知でしょう。しかし、既存のリスト (項目リストなど) に複数の項目を追加したい場合はどうすればよいでしょうか?
extend()
メソッドは、これを行うための簡潔な構文を提供します。
extend()
メソッドを使用して、リスト
more_langs
の要素を
pgm_langs
リストに追加しましょう。
more_langs = ['C++','C#','C']
pgm_langs.extend(more_langs)
print(pgm_langs)
# Output: ['Python', 'Scala', 'Go', 'Rust', 'JavaScript', 'Java', 'C++', 'C#', 'C']
項目のリストをループし、
append()
メソッドを使用して一度に 1 つの項目を追加できます。ただし、これは冗長です。代わりに
extend()
メソッドを使用する方が便利です。
for lang in more_langs:
pgm_langs.append(lang)
reverse() でリストを反転する
リスト内の要素の順序を逆にするには、
reverse()
メソッドを呼び出します。
pgm_langs
リストが逆になっていることがわかります。
pgm_langs.reverse()
print(pgm_langs)
# Output: ['C', 'C#', 'C++', 'Java', 'JavaScript', 'Rust', 'Go', 'Scala', 'Python']
Python でリストを反転して逆方向にスピンする方法もお読みください。
sort() を使用してリストを並べ替える

sort()
メソッドを使用すると、Python リストをその場で並べ替えることができます。
pgm_langs
文字列のリストであるため、並べ替えはアルファベット順に行われることがわかります。
pgm_langs.sort()
print(pgm_langs)
# Output: ['C', 'C#', 'C++', 'Go', 'Java', 'JavaScript', 'Python', 'Rust', 'Scala']
リストを逆アルファベット順に並べ替えるには、
sort()
メソッド呼び出しで
reverse
パラメーターを
True
に設定します。
pgm_langs.sort(reverse=True)
print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']
Python リストの並べ替えについて詳しくは、こちらをご覧ください。
copy() で浅いコピーを作成する
元のリスト自体を変更するのではなく、元のリストのコピーを変更すると役立つ場合があります。リスト メソッド
copy()
Python リストの
浅いコピー
を返します。
pgm_langs
リストの浅いコピーを作成し、それを
pgm_langs_copy
と名付けましょう。そして、リストの最初の要素を「Haskell」に設定し、出力します。
pgm_langs_copy = pgm_langs.copy()
pgm_langs_copy[0]='Haskell'
print(pgm_langs_copy)
# Output: ['Haskell', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']
ただし、
pgm_langs
リストは変更されて
いない
ことがわかります。したがって、浅いコピーを作成して変更しても、元のリストは変更されません。
print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C#', 'C']
count() でアイテム数を取得する
リスト内で特定の要素が出現する回数を知ると役立つ場合があります。
count()
メソッドは、リスト内で要素が出現する回数を返します。
pgm_langs
リストでは、すべての要素が 1 回だけ出現します。したがって、「Go」のカウントを取得しようとすると、正しい 1 が得られます。
print(pgm_langs.count('Go'))
# Output: 1
count()
メソッドの使用は、Python リストから重複項目を削除する方法の 1 つです。
Index() を使用して項目のインデックスを取得する
Python リストで項目のインデックスを検索するには、
index()
メソッドを使用できます。
pgm_langs
リストで「C#」のインデックスを見つけたいとします。
assert
ステートメントを使用して、インデックス 7 の要素が ‘C#’ であることを確認できます。
print(pgm_langs.index('C#'))
# Output: 7
assert pgm_langs[7] == 'C#'
Pop() を使用してインデックスにある項目を削除する
次に、Python リストから要素を削除する list メソッド list メソッドを見てみましょう。
pop()
メソッドは、特定のインデックスにある要素を削除して返すために使用されます。前のコード例から、「C#」がインデックス 7 の言語であることがわかります。
インデックスとして 7 を指定して
pgm_langs
リストの
pop()
メソッドを呼び出すと、インデックス 7 の要素である ‘C#’ が返され、それがリストから削除されることがわかります。
print(pgm_langs.pop(7))
# Output: 'C#'
print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++', 'C']
したがって、
pop()
メソッドは、指定されたインデックスにある要素を削除して返します。ただし、インデックスの指定は
オプション
です。インデックスを指定しない場合、以下に示すように、
pop()
メソッドは Python リストの最後の要素を削除して返します。
print(pgm_langs.pop())
# Output: 'C'
print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Java', 'Go', 'C++']
Remove() を使用して項目を削除する

場合によっては、
どの
要素を削除するかはわかっていても、そのインデックスが
わからない
場合があります。この場合
remove()
メソッドを使用できます。このメソッドは、削除する要素を取り込んで削除します。次に示すように
remove()
メソッドを使用して
pgm_langs
リストから「Java」を削除しましょう。
pgm_langs.remove('Java')
print(pgm_langs)
# Output: ['Scala', 'Rust', 'Python', 'JavaScript', 'Go', 'C++']
clear() を使用してすべての項目を削除する
Python リストからすべての項目を削除したい場合はどうすればよいでしょうか?次のように、
remove()
メソッドを使用してリストをループし、各要素を削除できます。
for lang in pgm_langs:
pgm_langs.remove(lang)
しかし、もっと良い方法はあるでしょうか?はい、
clear()
メソッドを使用します。
pgm_langs
リストで clear メソッドを呼び出すとすべての要素が削除され、
pgm_langs
空のリストになっていることがわかります。
pgm_langs.clear()
print(pgm_langs)
# Output: []
Python のリスト メソッドの概要
さまざまなリスト メソッドとその構文を簡単にまとめてみましょう。
リストメソッド | 構文 | 説明 |
---|---|---|
入れる() |
list1.insert(index, elt)
|
list1
の
index
に
elt
挿入します
|
追加() |
list1.append(elt)
|
list1
の最後に
elt
を追加します
|
伸ばす() |
list1.extend(list2)
|
list2
の要素を
list1
の最後に追加します
|
選別() |
list1.sort()
|
リストをその場で並べ替えます |
逆行する() |
list1.reverse()
|
list1
その場で反転します
|
コピー() |
list1.copy()
|
list1
の浅いコピーを返します。
|
カウント() |
list1.count(elt)
|
list1
の
elt
の数を返します。
|
索引() |
list1.index(elt)
|
list1
の
elt
のインデックスを返します。
|
ポップ() |
list1.pop(index)
|
index
の
elt
削除して返します。
|
取り除く() |
list1.remove(elt)
|
list1
から
elt
を削除します
|
クリア() |
list1.clear()
|
list1
から
すべての
要素を削除します
|
結論
このチュートリアルが、Python で最も一般的なリスト メソッドの使用方法を理解するのに役立つことを願っています。次のステップとして、Python タプルと、Python のリストとタプルの違いについて学習します。