クルトンのプログラミング教室

Pythonの使い方やPythonを使った競技プログラミングの解法などを解説しています。

list(リスト)の使い方【Python】

こんにちは、クルトンです!

この記事ではlistの使い方を解説します。

listとは

listは複数の要素を扱うオブジェクトの一つです。

listの特徴はミュータブル、つまり要素の変更が可能なオブジェクトであるということです。

では早速、具体的な使い方を見ていきましょう!

listの使い方

[要素0, 要素1, 要素2, ...]

このように、listは角括弧「[]」の間に要素をコンマ「,」で区切って並べることで定義できます。

またこのとき、各要素の型は違っても問題ありません。

[100, 'abc']


そして、要素の型がlistであっても問題ありません。

つまり、リストの中にリストを入れることができます。

[100, 'abc', ['A', 'B', 'C']]

要素の取り出し方

リストの要素には、インデックスと呼ばれる番号が割り振られています。

この番号を指定することで、リストの要素を取り出すことができます。

リスト名[インデックス番号]

また、インデックスは0から始まっています。(1からではないということに注意しましょう!)

コード

L = ['a', 'b', 'c', 'd', 'e']		#インデックス番号は[0, 1, 2, 3, 4]となっている

print(L[0])
print(L[3])

出力結果

a
d

インデックスを負の値に指定したときは、後ろから-1, -2....となります。

コード

L = ['a', 'b', 'c', 'd', 'e']		#インデックス番号は[-5, -4, -3, -2, -1]となっている

print(L[-1])
print(L[-3])

出力結果

e
c

リスト内リストの要素の取り出し方

リストの中にはリストを要素として入れることができます。

このようなときは、インデックスを二つ指定することで要素を取り出すことができます。


コード

L = [['a', 'b', 'c', 'd'],['e', 'f', 'g', 'h'],['i', 'j', 'k', 'l']]

print(L[0][0])
print(L[1][2])

出力結果

a
g

これだけでは、どのように要素を指定しているのか分かりにくいと思うので、詳しく説明します。

上のリストの中からiを表示したいとします。

このとき、Lの要素は

['a', 'b', 'c', 'd']
['e', 'f', 'g', 'h']
['i', 'j', 'k', 'l']

の3つです。iは3つ目の要素に含まれているので、まずはインデックスを2に指定します。

コード

L = [['a', 'b', 'c', 'd'],['e', 'f', 'g', 'h'],['i', 'j', 'k', 'l']]

print(L[2])

出力結果

['i', 'j', 'k', 'l']

あとは普通のリストと同じです!
iはL[2]の1つ目の要素なので、インデックスを0に指定することでiを取り出せます。

コード

L = [['a', 'b', 'c', 'd'],['e', 'f', 'g', 'h'],['i', 'j', 'k', 'l']]

print(L[2][0])

出力結果

i

以上がリスト内リストの要素の取り出し方になります。


listの要素の書き換え

インデックスを指定して、代入することで要素を書き換えることができます。

コード

L = ['a', 'a', 'a']
L[0] = 'b'

print(L)

出力結果

['b', 'a', 'a']

スライスを使った要素の取り出し方

リスト名[最初の要素のインデックス番号:最初の要素のインデックス番号 + 1]

では具体的な使い方を見てみましょう。

コード

L = ['a', 'b', 'c', 'd', 'e']

print(L[1:3])

出力結果

['b', 'c']

また、左側の数字を省略することで最初の要素を、右側の数字を省略することで最後の要素を指定することができます。

コード

L = ['a', 'b', 'c', 'd', 'e']

print(L[:3])
print(L[3:])

出力結果

['a', 'b', 'c']
['d', 'e']

要素の削除

del文

del文を使うことで要素を削除することができます。

このとき、削除したい要素をインデックスを使って指定します。

コード

L = ['a', 'b', 'c', 'd']
del L[1:3]

print(L)

出力結果

['a', 'd']

また、スライスを使って削除することもできます。

clearメソッド

clearメソッドを使うことですべての要素を削除することができます。

コード

L = ['a', 'b', 'c', 'd']
L.clear()

print(L)

出力結果

[]

popメソッド

popメソッドを使うことで指定した要素を削除し、その値を取得することができます。

このとき、要素を指定するにはインデックス番号を用います。

コード

L = ['a', 'b', 'c', 'd']
x = L.pop(2)

print(L)
print(x)

出力結果

['a', 'b', 'd']
c

removeメソッド

removeメソッドを使うことで指定した要素を前から順番に検索し、最初に出てきた要素を削除します。

このとき、要素を指定するには要素の値を用います。

コード

L = ['a', 'b', 'c', 'd', 'a']
x = L.remove('a')

print(L)

出力結果

['b', 'c', 'd', 'a']

このように指定した要素が複数あるときでも、最初に出てきた要素だけを削除します。


要素の追加

appendメソッド

appendメソッドを使うことで、リストの最後に要素を追加することができます。

コード

L = ['a', 'b', 'c']
x = L.append('d')

print(L)

出力結果

['a', 'b', 'c', 'd']

insertメソッド

insertメソッドを使うことで、リストの指定した場所に要素を追加することができます。

このとき、場所の指定にはインデックス番号用います。

コード

L = ['a', 'c', 'd']
x = L.insert(1, 'b')

print(L)

出力結果

['a', 'b', 'c', 'd']

extendメソッド、+演算子

extendメソッドや+演算子をつかうことで、リストにリストを結合することができます。

extendメソッドを使ったコード

L1 = ['a', 'b']
L2 = ['c', 'd']
L1.extend(L2)

print(L1)

出力結果

['a', 'b', 'c', 'd']


演算子を使ったコード

L1 = ['a', 'b']
L2 = ['c', 'd']
L1 += L2

print(L1)

出力結果

['a', 'b', 'c', 'd']

今回はlist(リスト)の使い方について解説しました。

リスト内リストの要素の取り出し方などは、なかなか理解するのが難しいと思いますが頑張ってください!

ではまたお会いしましょう!さようなら~