リスト (list型オブジェクト)

リスト (list型オブジェクト)

リストの定義と基本操作

 この記事では、Python における リスト の定義、置換、削除、スライス、連結などを解説します。Python のリスト機能は柔軟性があって扱いやすく、データ分析や統計処理で頻繁に活用されます。
 リストは複数の要素(数値や文字などのデータ)にインデックス(見出し番号)を割り当てて、ひとまとまりにしたもので、Python では

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

という形式で定義されます。インデックスは必ず 0 から始まります。1 個目の要素には 0 、10 個目の要素には 9 が割り振られます。

 Python リストとインデックス

 フルーツのリストを作って、type()関数でデータ型を調べてみましょう。

# LIST_01-1

# フルーツのリスト
fruits = ["りんご", "みかん", "バナナ"]

# fruitsのクラスを取得
tp = type(fruits)

# fruitsのクラスをを表示
print(tp)
<class 'list'>

 データ型は list と表示されましたね。
 リストそれ自体も数値や文字列と同じように1つのデータ型として扱われます。
 listオブジェクト は [コンテナ型 - シーケンス型] に分類されます。

 次のコードでリストを表示させてみましょう。

# LIST_01-2

# fruitsを表示
print(fruits)
['りんご', 'みかん', 'バナナ']

 

リストから要素を取り出します

 リストから特定要素を抜き出すときは、リスト名にインデックスを [ ] で括って添えて

 リスト名[要素番号]

と記述します。fruits から1つめの要素を取り出してみます。1つめの要素にはインデックス 0 が割り当てられていることに注意してください。

# LIST_01-3

# リストの1番目の要素の取り出し
print(fruits[0])
りんご

 

リストの要素を置き換えます

 リストの要素を別の要素に置き換えることもできます。

 リスト名[インデックス] = 新しい要素

 お菓子のリストを作って、2番目の要素を置き換えてみます:

# LIST_02

# お菓子のリスト
sweets = ["チョコレート", "チーズケーキ", "アップルパイ"]

# リストの2番目の要素"チーズケーキ"を"抹茶プリン"に置き換える
sweets[1] = "抹茶プリン"

# sweetsを表示
print(sweets)
['チョコレート', '抹茶プリン', 'アップルパイ']

 2番目の要素が '抹茶プリン' に置き換わりました。
 

リストを連結します

 算術演算子「+」を使うと、2 種類のリストを連結することができます。

# LIST_03

# フルーツのリスト
fruits = ["りんご", "みかん", "バナナ"]

# お菓子のリスト
sweets = ["チョコレート", "チーズケーキ", "アップルパイ"]

# リストを連結
fruits_and_sweets = fruits + sweets

# 連結されたリストを表示
print(fruits_and_sweets)
['りんご', 'みかん', 'バナナ', 'チョコレート', 'チーズケーキ', 'アップルパイ']

 

リストの要素を削除します

 リストの要素を削除したいときは del文を使います。

# LIST_04

# Pythonのパッケージのリスト
packages = ["NumPy", "SciPy", "SymPy"]

# リストの2番目の要素を削除
del packages[1]

# packagesを表示
print(packages)
['NumPy', 'SymPy']

 

スライスでリストから複数の要素を取り出します

 Python のリストにはスライスというユニークな機能が備わっています。その名の通り、玉ねぎを包丁でスライスするような感覚で連続した要素をまとめて取り出すことができます。ただ、スライスという言葉は指定した要素をリストから削除するような誤解を与えてしまうかもしれません。しかし実際には取り出した要素をコピーして新しいリストを作るだけで、元のリストの中身が変わるわけではありません。リストをスライスしたいときは、

 [最初のインデックス : 最後のインデックス + 1]

という形式で記述します。

 Python リストのスライス

# LIST_05-1

# 猫の品種リスト
cats = ["マンチカン", "メインクーン", "アビシニアン", "ベンガル", "ヒマラヤン"]

# リストの2番目から4番目の要素を抽出
cats_2 = cats[1:4]

# cats_2を表示
print(cats_2)
['メインクーン', 'アビシニアン', 'ベンガル']

 スライスするときにコロン (:) の左右は省略することができます。右側を省略すると指定したインデックスから最後までの要素を全部取り出します。左側を省略すると最初の要素から、インデックスまでの要素を取り出します。

# LIST_05-2

# 3番目以降のすべての要素を取り出す
cats_3 = cats[2:]

# 最初から2つめまでの要素を取り出す
cats_4 = cats[:2]

# cats_3とcats_4を表示
print(cats_3)
print(cats_4)
['メインクーン', 'アビシニアン', 'ベンガル']
['マンチカン', 'メインクーン']

 

リストのメソッド一覧

 ・要素の削除:list.pop(), list.remove(), list.clear()
 ・要素の追加と挿入:list.append(), list.extend(), list.insert()
 ・要素の並び替え:list.sort(), list.reverse()
 ・浅いコピー:list.copy()
 ・インデックスの取得:list.index()
 ・指定要素の個数をカウント:list.count
 

たった1秒の最強スキル パソコン仕事が10倍速くなる80の方法

新品価格
¥1,382から
(2019/8/6 17:57時点)

組み込み関数によるリストの操作

 Python には外部から import しなくても使える組み込み関数が用意されています。この章では組み込み関数を使って リストの合計値や最大値・最小値・長さ を求める方法を解説します。

リストの合計値

 リストの要素を合計するときは sum()関数 を使います。

# リストLIST_15

# 英語の試験の点数
etest = [71, 58, 90, 83, 65]

# リストの合計値
x = sum(etest)

print(x)
367

 

リストの最大値

 max() はリストから最大要素を返します。

# リストLIST_16

# 英語の試験の点数
etest = [71, 58, 90, 83, 65]

# リストの最大値
x = max(etest)

print(x)
90

 

リストの最小値

 min() はリストから最小要素を返します。

# リストLIST_17

# 英語の試験の点数
etest = [71, 58, 90, 83, 65]

# リストの最小値
x = min(etest)

print(x)
58

 

リストの長さ

 len() はリストの長さ、すなわち要素の個数を返します。

# リストLIST_18

# 英語の試験の点数
etest = [71, 58, 90, 83, 65]

# リストの長さ(要素の個数)
x = len(etest)

print(x)
5

 

リストの平均値

 sum() と len() を組合わせると、リストの平均値を計算することができます。

# リストLIST_19

# 英語の試験の点数
etest = [71, 58, 90, 83, 65]

# 平均点を計算
mean_etest = sum(etest)/len(etest)

print(mean_etest)
73.4