Pythonのリスト

リストは他の言語でいう配列で、順番に並んだオブジェクトを入れるコンテナ


    リストの作成

    リストは他の言語でいう配列で、順番に並んだオブジェクトを入れるコンテナ。次のように[](角括弧)を用いて変数に代入する。リストに含まれている個々のオブジェクトを要素という。

    リスト = ['Python', 'HTML', 'Java']

    リスト要素の参照

    リストに含まれている要素を参照するには、インデックス(要素の番号)を使ってリスト[インデックス]のようにする。一番目のインデックスは0となる。

    リスト = ['Python', 'HTML', 'Java']
    print(リスト[1]) # HTML

    要素を入れ替えるなら、

    リスト[インデックス] = オブジェクト

    要素追加ならappendメソッド


    リストのスライス

    リストをスライス(一部をリストとして参照)するには、[開始インデックス:終了インデックス]で範囲を指定する。終了インデックスの直前の要素までが範囲となる。

    リスト[i:j] # インデックスiからj-1まで
    リスト[i:] # iから最後まで
    リスト[:] # すべて
    リスト[-i:] # 後ろから数えてi番目から最後まで(末尾要素は-1)
    リスト = ['Python', 'HTML', 'Java']
    print(リスト[1:2]) # ['HTML']
    print(リスト[:]) # ['Python', 'HTML', 'Java'] 
    print(リスト[-2:]) # ['HTML', 'Java']

    リストのサイズ

    リストの大きさ(要素の数)はlen関数で調べる。

    リスト = ['Python', 'HTML', 'Java']
    print(len(リスト)) # 3

    リストのメソッド

    生成したリストはオブジェクトの一種。リストを操作するメソッド(オブジェクトが使える関数)はいくつかあり、次のように使う。

    リスト.メソッド()

    リスト要素の追加: appendメソッド

    リストの末尾に要素を追加するなら、appendメソッド。

    リスト = ['Python', 'HTML', 'Java']
    リスト.append('Ruby')
    print(リスト) # ['Python', 'HTML', 'Java', 'Ruby']

    他のやり方として、リスト[リストサイズ:]に代入したり、

    リスト = ['Python', 'HTML', 'Java']
    リスト[len(リスト):] = ['Ruby']
    print(リスト) # ['Python', 'HTML', 'Java', 'Ruby']

    +でも追加できる。

    リスト = ['Python', 'HTML', 'Java'] + ['Ruby']
    print(リスト) # ['Python', 'HTML', 'Java', 'Ruby']

    リストにリストを追加: extendメソッド

    リストの末尾にリストを追加するなら、extendメソッド。

    リスト = ['Python', 'HTML', 'Java']
    リスト.extend(['Ruby', 'JavaScript'])
    print(リスト) # ['Python', 'HTML', 'Java', 'Ruby', 'JavaScript']

    これがappendメソッドだと入れ子のリストになる。

    リスト = ['Python', 'HTML', 'Java']
    リスト.append(['Ruby', 'JavaScript'])
    print(リスト) # ['Python', 'HTML', 'Java', ['Ruby', 'JavaScript']]

    リストの指定位置に要素を挿入: insertメソッド

    リストの指定位置に要素を挿入するなら、insertメソッド。引数1に挿入先のインデックスを指定。

    リスト = ['Python', 'HTML', 'Java']
    リスト.insert(1, 'Ruby')
    print(リスト) # ['Python', 'Ruby', 'HTML', 'Java']

    リストから要素を指定して削除: removeメソッド

    リストから要素を指定して削除するなら、removeメソッド。もし要素が存在しなかったらエラー。

    リスト = ['Python', 'HTML', 'Java']
    リスト.remove('HTML')
    print(リスト) # ['Python', 'Java']

    リストからインデックス指定で要素を削除: del文

    リストからインデックス指定で要素を削除するなら、del文を使う。

    リスト = ['Python', 'HTML', 'Java']
    del リスト[0]
    print(リスト) # ['HTML', 'Java']

    ある要素がリストにいくつ含まれるかカウント: countメソッド

    ある要素がリストにいくつ含まれるかカウントするなら、countメソッド。

    リスト = ['Python', 'HTML', 'Java', 'HTML']
    print(リスト.count('HTML')) # 2

    リストの要素をソート: sortメソッド、reverseメソッド

    リストの要素をソートするなら、sortメソッド。数字(小さい)、大文字、小文字、ひらがな・漢字の順番。現在の並びを逆順にするなら、reverseメソッド。

    リスト = ['あ', 'ん', '漢字', '1', '10', '01', 'python', 'Python', 'java']
    リスト.sort()
    print(リスト) # ['01', '1', '10', 'Python', 'java', 'python', 'あ', 'ん', '漢字']
    リスト.reverse()
    print(リスト) # ['漢字', 'ん', 'あ', 'python', 'java', 'Python', '10', '1', '01']

    リストの末尾から取り出す: popメソッド

    リストの末尾(最後に追加した要素)から要素を取り出すなら、popメソッド。後入先出法。

    リスト = ['Python', 'HTML', 'Java']
    print(リスト.pop()) # Java
    print(リスト) # ['Python', 'HTML']

    リストの繰り返し処理

    リストの要素を順次処理していくにはfor文を使う。下記の「要素」という変数には順番にリストの要素が代入される。

    リスト = ['Python', 'HTML', 'Java']
    for 要素 in リスト:
      print(要素)

    インデックス番号が必要なら、組み込み関数enumerateを使う。

    リスト = ['Python', 'HTML', 'Java']
    for インデックス, 要素 in enumerate(リスト):
      print(インデックス, 要素)

    出力はこうなる。

    0 Python
    1 HTML
    2 Java