さあPython初心者の皆様!私もですがw
初心者がよくつまづきやすい、「リスト型」についてブログします。
と言っても自分はリスト型より辞書型のほうがようわからんかった気がする。
※ちなみにPythonのバージョンは2.7系
■リスト型データの作成
リスト型は中に入れるデータに0から順番に番号が付く仕組みになっています。
とりあえずインタラクティブシェルで適当に0~3まで格納するインスタンス作りましょう。
1 2 3 4 5 6 7 8 |
adachin@ > python Python 2.7.13 (default, Jan 3 2017, 16:50:45) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> list_int = [0,1,2,3] >>> print list_int [0, 1, 2, 3] |
もちろん整数だけではなく、少数型や文字列型も大丈夫です。
1 2 3 |
>>> list_mix = [2,1.53,'adachin'] >>> print list_mix [2, 1.53, 'adachin'] |
■添字を使って要素にアクセス
リストでは[]で番号を指定することで、格納されたデータを取り出すことができます。
1 2 |
>>> list_mix[0] 2 |
もちろん0から始まるので上記のlist_mix変数内には2が最初となるのでOK。
ちなみにリストの長さ(項目数)は関数lenを使います。
1 2 3 4 |
>>> len(list_int) 4 >>> len(list_mix) 3 |
試しにlist_int[4]とやれば5番目を指定することになってしまうので、
エラーが出ます。
さらにlist_int[-1]とやれば最後の数字を取り出すこともできます。
・ポイント
リストの要素には0から始まる添字でアクセスする。
添字[-1]は最後の要素を示す。
かんたんかんたん。
■要素の変更と追加
リストは格納しているデータの要素を個別に変更できます。
1 2 3 |
>>> list_int[0] = -1 >>> print list_int [-1, 1, 2, 3] |
上記は0を-1に変更しているだけです。戻す時は同じように0を代入すればOK。
新しいデータ要素を追加したい時はappendメソッドを使用します。
今回は4をぶち込んでみましょう。
1 2 3 |
>>> list_int.append(4) >>> print list_int [0, 1, 2, 3, 4] |
ちなみに要素を追加する時に、挿入する場所も指定したい場合はinsertメソッドを使用します。
さらにinsertメソッドは2つ引数をとります。
以下の場合だと1の後ろに5を挿入しています。
1 2 3 |
>>> list_int.insert(1,5) >>> print list_int [0, 5, 1, 2, 3, 4] |
・ポイント
appendを使ってリストの一番後ろに要素を追加。
■要素の削除
削除の場合は2つ方法があります。
消したい要素を添字で指定する方法と、
直接指定する方法です。
添字を使った場合ではpopメソッドを使用します。
1 2 3 4 |
>>> list_int.pop(1) 5 >>> print list_int [0, 1, 2, 3, 4] |
流れとしては0が一つずれていることがわかります。
では直接指定して削除したい場合はremoveメソッドを使用します。
1 2 3 |
>>> list_mix.remove('adachin') >>> print list_mix [2, 1.53] |
adachinが消えた…
popメソッドとは違って単に要素を削除しているだけなので、
値は戻ってきません。
・ポイント
削除はpopメソッド、removeメソッドを使い分ける
■リストの連結と拡張
リスト同士は足し算ができます。
足し算!?
1 2 |
>>> list_int + list_mix [0, 1, 2, 3, 4, 2, 1.53] |
ちなみにexpendメソッドを使って、list_intにlist_mixの要素を
全て追加することもできます。
1 2 3 |
>>> list_int.extend(list_mix) >>> print list_int [0, 1, 2, 3, 4, 2, 1.53] |
・ポイント
リストは+で足し算ができる。
リストの拡張はextendで行う。
■少し高度なリスト技
スライスという機能を使うとリストの一部だけを簡単に切り出すことができます。
今回はlist_fの最初3つだけを切り出して新しいリストを作ってみましょう。
1 2 3 |
>>> list_f = [0,1,1,2,3,5,8,13,21,34,55] >>> list_f[0:3] [0, 1, 1] |
この[0:3]は0番目から始まって3番目の要素を取り出すということでげす。
面白いでしょ。
もちろん指定の場所から最後までや、最初の要素から指定の場所なんてことも
イージーです。
1 2 3 4 |
>>> list_f[2:] [1, 2, 3, 5, 8, 13, 21, 34, 55] >>> list_f[:4] [0, 1, 1, 2] |
ちなみに[2:11]と[0:4]と書くことと同じです。
・ポイント
スライスを使うとリストの一部を切り出せる。
■並び替え
リストは保持している要素を並び替えることもできます。
大小とかアルファベット順とか…
それにはsortメソッド、reverseメソッドを使います。
1 2 3 4 5 6 |
>>> list_test = [4,9,3,-1,0] >>> print list_test [4, 9, 3, -1, 0] >>> list_test.sort() >>> print list_test [-1, 0, 3, 4, 9] |
小さい順になりましたね!
reverseメソッドはさっきと違って逆になります。
1 2 3 |
>>> list_test.reverse() >>> print list_test [9, 4, 3, 0, -1] |
まさにリバース!
ちなみにもう一度reverseメソッドを呼ぶと元の小さい順になります。
次は文字列で例を出してみます。
1 2 3 4 |
>>> list_os = ['windows','mac','linux','BeOS'] >>> list_os.sort() >>> print list_os ['BeOS', 'linux', 'mac', 'windows'] |
ちゃんとアルファベット順になりました。
BeOSとはw
ちなみにsortメソッドは大文字が小文字より先になるルールです。
・ポイント
sortでリストの並び替えができる。
reverseはリストの並び順をひっくり返すときだけ。
■空っぽのリスト
空のリストは[]です。
1 2 3 |
>>> new_list = [] >>> print new_list [] |
なにか挿入してみましょう。
1 2 3 4 |
>>> new_list.append('apple') >>> new_list.append('orange') >>> print new_list ['apple', 'orange'] |
・ポイント
空のリストは[]で作る
■まとめ
リスト型はこんな感じですが、結構馴染めやすいと思います。
メソッドは他にもありますが、他の参考書見ないと分からんですね。
いやドキュメント読もう!次回は辞書型!
0件のコメント