Pythonのデータ構造のひとつにリストがあります。リストは、データ構造上、文字列と同じように、シーケンス型のひとつとして位置づけられています。今回はリストの使い方について紹介します。

リストの記述方法

リストは、複数の要素から構成されており、要素が順に並んでいます。
括弧[]で囲んだ中に、要素をカンマ(,)で区切って記述します。
具体的には次のように記述します。要素となるデータは、数値と文字が混在していてもかまいません。

[ 10 , 11 , 12 , 13 ]
[ “A” , “B” , “C” , “D” ]
[ “A” , 1 , ”B” , 2 , ”C” , 3]

リストのデータ操作

ここでは、リストを使ってどのようなデータ操作ができるかを見てみましょう。
Python 3.5.2(32bit版)での動作となります。
 >>> は Pythonを立上げたときの入力プロンプトとなります。入力プロンプトのあとにコマンドを入力していきます。
 

リストの生成

# 空のリストを作る
>>> list01 = []
>>> list01     
[]             空のリスト[]が作成された。

値の追加

数値はそのままですが、文字データは“a”のように”で囲んでセットします。
また、リスト内の位置は、左から0,1,2…のように数えます。
・数値データをセットする

>>> list01 = [ 1 , 2 , 3 ]  
>>> list01
[ 1 , 2 , 3 ]

・文字データをセットする

>>> list01 = ["a", "b", "c"]  
>>> list01
[‘a’ , ‘b’ , ‘c’]

・リストの最後に“d”を追加する。

>>> list01.append("d")  
>>> list01
[‘a’ , ‘b’, ‘c’ , ’d’]

・リストの先頭に“z”を追加する

>>> list01.insert(0, "z")        左から0番目の位置に文字“z”をセットする。
>>> list01
[‘z’ , ’‘a’ , ‘b’ , ‘c’ , ’d’] 

・任意の場所に追加

>>> list01.insert(2, "A")    左から2番目の位置に文字“A”をセットする。
>>> list01
[‘z’ , ’‘a’ , ‘A’ , ‘b’ , ‘c’ , ’d’]    

                
・配列に配列を追加

>>> list01=[1,2,3]       リストに1,2,3をセットする。
>>> list01
[1,2,3]
>>> list01.extend([4, 5, 6])   リストに配列[4,5,6]を追加する。
>>> list01
[1,2,3,4,5,6]
>>> list02 = list01 + [7,8,9]   リストに配列[7,8,9]を追加する。
>>> list02
[1,2,3,4,5,6,7,8,9]

値の削除

・要素の削除(複数存在する場合は1つ目のみ)

>>> list01=[ “a” , ”b” , ”c” ]
>>> list01
[ ‘a’ , ’b’ , ’c’ ]
>>> list01.remove("c")           リストから“c”を削除する。
>>> list01
[ ‘a’ , ’b’ ]

・要素の削除(複数存在するものを全部)

>>> list01=[“c” , ”a” , ”c” , ”b” , ”c”]
list01
[‘c’ , ‘a’ , ’c’ , ’b’ , ’c’ ]
>>> list01 = [item for item in list01 if item is not "c"] “c” 以外をすべて残す。
[ ‘ a ’ , ’ b ’]

・位置を指定して削除(1件)

>>> list01=[0 , 1 , 2 , 3 , 4 , 5]
>>> del  list01[0]
>>> list01
[1 , 2 , 3 , 4 , 5]

・位置を指定して削除(複数件)1の位置から2個削除

>>> list01=[1 , 2 , 3 , 4 , 5]
>>> del  list01[2:4]
>>> list01
[1 , 2 , 5]

・位置を指定して削除(全部)

>>> list01=[1 , 2 , 3 , 4 , 5]
>>> del  list01[:]
>>> list01
[]

値の取得

・値の取得

>>> list01 = [1, 2, 3, 4, 5]
>>> print (list01[0:2])
[1, 2]
>>> print (list01[0:-1])
[1, 2, 3, 4]
>>> print (list01[:3])
[1, 2, 3]
>>> print (list01[3:])
[4, 5]
>>> list01[::2]
[1, 3, 5]
>>> list01[::-1]
[5, 4, 3, 2, 1]
>>> list01[::-2]
[5, 3, 1]

・指定した要素の位置を取得する

>>> list01=[1 ,2 ,3 ,4 ,5]
>>> index = list01.index(4)
>>> index
3

・最後の要素を取得して同時に削除する

>>> list01=[1, 2, 3, 4, 5]
>>> item = list01.pop()
>>> item
5
>>> list01
[1, 2, 3, 4]

・指定した位置の要素を取得して同時に削除する

>>> list01=[1, 2, 3, 4, 5]
>>> item = list01.pop(0)
>>> item
1
>>> list01
[2, 3, 4, 5]

値のカウント

・指定した要素の出現回数をカウントする

>>> list01=[1, 3, 3, 4, 4, 5, 6, 7, 8]
>>> count = list01.count(3)
>>> count
2

・すべての要素の数をカウントする

>>> list01=[1, 3, 3, 4, 4, 5, 6, 7, 8]
>>> len(list01)
>>> 9

・指定した要素が存在するか確認する

>>> list01 = [1,2,3,4,5]
>>> print 2 in list01
True
>>> print 6 in list01
False

値の変更

値を変更する

>>> list01 = ["a", "b", "c", "d"]

要素3の値を変更する

>>> list01[3] = "D"
['a', 'b', 'c', 'D']

・要素0-2を変更する

>>> list01[:3] = ["A", "B", "C"]
['A', 'B', 'C', 'D']

・一番後ろの値を変更する(追加要素が多い場合は末尾に追加される)

>>> list01[-1:] = ["E", "F"]
['A', 'B', 'C', 'E', 'F']

値のソート

・ソートする(元のリスト自体をソートする)

>>> list01=[1, 5, 4, 2, 8]
>>> list01.sort()
>>> list01
[1, 2, 4, 5, 8]

・ソートする(元のリストは変更しない)

>>> list01=[9, 9, 1, 2, 6, 5]
>>> list02 = sorted(list01)
>>> list02
[1,2,5,6,9,9]
>>> list01
[9,9,1,2,6,5]

・ソート条件(key)を指定する

>>> member=[(‘oota’,18),(‘honda’,60),(‘ando’,35)]
>>> sorted(member,key=lambda x:x[1])  
[(‘oota’,18),(‘ando’,35) ,(‘honda’,60)]
>>> sorted(member,key=lambda x:x)
[(‘ando’,35) ,(‘honda’,60) ,(‘oota’,18)]

・逆順にソートする(元のリスト自体をソートする)

>>> list01=[9,7,9,3,4,7]
>>> list01.sort(reverse=True)
>>> list01
[9, 9, 7, 7, 4, 3]

・または(元のリストは変更しない)

>>> list02 = sorted(list01,reverse=True)
>>> list02
[9, 9, 7, 7, 4, 3]
>>> list01
[9, 7, 9, 3, 4, 7]

リストの使用例(サンプルプログラム)

リストを使用したサンプルプログラムです。参考にしてみてください。
サンプルデータ1

# coding: utf-8
print "リストからデータを取り出します。"
plist = ["鈴木", "一郎", 12, 31, "男性"]
print '名前:'+ plist[0] + plist[1]
print '生年月日:' + str(plist[2]) + '月'+ str(plist[3])+'日'
print '性別:' + plist[4]

実行結果

リストからデータを取り出します。
名前:鈴木一郎
生年月日:12月31日
性別:男性

サンプルデータ2

# coding: utf-8
print "リストから年齢を若い順にソートし取り出します。"
age=[12, 33, 91, 24, 43, 10]
print(age)
sort_age=sorted(age)
for num in sort_age:
  print '年齢:'+str(num)
リストから年齢を若い順にソートし取り出します。
[12, 33, 91, 24, 43, 10]
年齢:10
年齢:12
年齢:24
年齢:33
年齢:43
年齢:91

まとめ

リストを使ったデータ操作について、コマンドを実行したときの結果とあわせて解説させていただきましたが、いかがでしたでしょうか。
リストの各要素はいつでも変更、削除が可能なため、柔軟にデータ操作ができる汎用性の高いものです。ぜひ、使い方を習得しておきましょう。
【おすすめ記事】
Pythonの本・参考書の評判
【無料で使える】Pythonを勉強できる学習サイト7つ
【Python入門】JSON形式データの扱い方
Pythonを使うなら知っておくべき!便利なライブラリ13選