Pythonを学び始めて最初に出会うデータ型が「リスト」です。複数の値をまとめて扱えるので、プログラムを書くうえで毎日のように使います。ただ、append・insert・remove・popなど似たメソッドが多く、「どれを使えばいいの?」と迷う方も多いのではないでしょうか。
この記事では、現役SEの私がリストの基本操作を、実行結果つきのコードで順番に解説します。読み終わるころには、要素の追加・削除・検索が迷わずできるようになります。
リスト(list)とは?基本の作り方
リストは、複数の値を順番に並べて保存できるデータ型です。角括弧 [ ] の中にカンマ区切りで値を書きます。要素の番号(インデックス)は0から始まる点に注意してください。
fruits = ["りんご", "みかん", "バナナ"]
print(fruits) # ['りんご', 'みかん', 'バナナ']
print(fruits[0]) # りんご
print(fruits[-1]) # バナナ(末尾から数える)
print(len(fruits)) # 3リストの一部をまとめて取り出したいときは、スライスが便利です。詳しくはPythonのスライスの使い方で解説しています。
要素を追加する:append・insert・extend
append:末尾に1つ追加
fruits = ["りんご", "みかん"]
fruits.append("バナナ")
print(fruits) # ['りんご', 'みかん', 'バナナ']insert:好きな位置に追加
fruits = ["りんご", "バナナ"]
fruits.insert(1, "みかん") # インデックス1に挿入
print(fruits) # ['りんご', 'みかん', 'バナナ']extend:複数の要素をまとめて追加
a = [1, 2]
a.extend([3, 4])
print(a) # [1, 2, 3, 4]appendにリストを渡すと「リストの中にリスト」ができてしまいます。まとめて足したいときはextendを使いましょう。
a = [1, 2]
a.append([3, 4])
print(a) # [1, 2, [3, 4]]ここまでで基本はおさえられました。ただ、独学だと「なぜこう動くのか」でつまずきやすいのも事実です。伸び悩んだら、Pythonが学べるプログラミングスクールの選び方・比較記事も参考にしてみてください。
要素を削除する:remove・pop・del・clear
nums = [10, 20, 30, 20]
nums.remove(20) # 値で指定(最初の1つだけ削除)
print(nums) # [10, 30, 20]
x = nums.pop() # 末尾を取り出して削除
print(x, nums) # 20 [10, 30]
del nums[0] # インデックスで削除
print(nums) # [30]
nums.clear() # すべて削除
print(nums) # []- remove(値):指定した値を最初の1つだけ削除。存在しないとValueError
- pop(番号):指定位置の要素を取り出して削除。番号を省略すると末尾
- del リスト[番号]:インデックスで削除(範囲指定も可能)
- clear():すべての要素を削除
要素を探す:in・index・count
colors = ["red", "blue", "green", "blue"]
print("blue" in colors) # True
print(colors.index("green")) # 2
print(colors.count("blue")) # 2indexは存在しない値を指定するとエラーになります。先に in で存在確認をするか、try-exceptによる例外処理を組み合わせると安全です。
並べ替えとコピーの注意点
並べ替えにはsort(元のリストを変更)とsorted(新しいリストを返す)があります。違いはsortとsortedの違いの記事で詳しく解説しています。
nums = [3, 1, 2]
nums.sort()
print(nums) # [1, 2, 3]
nums.reverse()
print(nums) # [3, 2, 1]また、b = a としてもリストはコピーされず、同じものを指します。独立したコピーが欲しいときは a.copy() を使います。詳細はcopyとdeepcopyの違いをご覧ください。
a = [1, 2, 3]
b = a # 同じリストを指す
c = a.copy() # 別のリスト
a.append(4)
print(b) # [1, 2, 3, 4]
print(c) # [1, 2, 3]よくあるミスと対策
- IndexError:範囲外のインデックスを指定した。len()で長さを確認しましょう
- ValueError:removeやindexで存在しない値を指定した。inで事前確認しましょう
- forループ中の削除:ループしながら同じリストを削除すると要素を飛ばします。内包表記(リスト内包表記)で新しいリストを作るのが安全です
もっと効率的にPythonを学びたい人へ
リストのような基本は独学でも身につきますが、エラーの原因が分からず手が止まってしまうこともあります。マンツーマン指導なら、つまずいた箇所をその場で質問でき、未経験からでも効率よくPythonを習得できます。転職サポートや無料カウンセリングを用意しているスクールもあるので、気になる方は一度チェックしてみてください。
※本記事には広告(アフィリエイトリンク)を含みます。
Pythonプログラミング|マンツーマンレッスンで初めてをプロに育てる【Python Winner】![]()
まとめ
- リストは [ ] で作り、インデックスは0から始まる
- 追加は append(末尾)・insert(位置指定)・extend(まとめて)を使い分ける
- 削除は remove(値)・pop(取り出し)・del(番号)・clear(全削除)
- 探すときは in・index・count、並べ替えは sort / sorted
- 代入(b = a)はコピーではない。独立させたいときは copy()
リストはPythonの土台になる重要な知識です。ぜひ手を動かして、実際に動作を確認してみてください。
ナノトイラボ 