Pocket

さあPython初心者の皆様!私もですがw
初心者がよくつまづきやすい、「リスト型」についてブログします。
と言っても自分はリスト型より辞書型のほうがようわからんかった気がする。
※ちなみにPythonのバージョンは2.7系


■リスト型データの作成

リスト型は中に入れるデータに0から順番に番号が付く仕組みになっています。
とりあえずインタラクティブシェルで適当に0~3まで格納するインスタンス作りましょう。

もちろん整数だけではなく、少数型や文字列型も大丈夫です。


■添字を使って要素にアクセス

リストでは[]で番号を指定することで、格納されたデータを取り出すことができます。

もちろん0から始まるので上記のlist_mix変数内には2が最初となるのでOK。
ちなみにリストの長さ(項目数)は関数lenを使います。

試しにlist_int[4]とやれば5番目を指定することになってしまうので、
エラーが出ます。
さらにlist_int[-1]とやれば最後の数字を取り出すこともできます。

・ポイント

リストの要素には0から始まる添字でアクセスする。
添字[-1]は最後の要素を示す。

かんたんかんたん。


■要素の変更と追加

リストは格納しているデータの要素を個別に変更できます。

上記は0を-1に変更しているだけです。戻す時は同じように0を代入すればOK。
新しいデータ要素を追加したい時はappendメソッドを使用します。
今回は4をぶち込んでみましょう。

ちなみに要素を追加する時に、挿入する場所も指定したい場合はinsertメソッドを使用します。
さらにinsertメソッド2つ引数をとります。
以下の場合だと1の後ろに5を挿入しています。

・ポイント

appendを使ってリストの一番後ろに要素を追加。


■要素の削除

削除の場合は2つ方法があります。
消したい要素を添字で指定する方法と、
直接指定する方法です。
添字を使った場合ではpopメソッドを使用します。

流れとしては0が一つずれていることがわかります。
では直接指定して削除したい場合はremoveメソッドを使用します。

adachinが消えた…
popメソッドとは違って単に要素を削除しているだけなので、
値は戻ってきません。

・ポイント

削除はpopメソッド、removeメソッドを使い分ける


■リストの連結と拡張

リスト同士は足し算ができます。
足し算!?

ちなみにexpendメソッドを使って、list_intにlist_mixの要素を
全て追加することもできます。

・ポイント

リストは+で足し算ができる。
リストの拡張はextendで行う。


■少し高度なリスト技

スライスという機能を使うとリストの一部だけを簡単に切り出すことができます。
今回はlist_fの最初3つだけを切り出して新しいリストを作ってみましょう。

この[0:3]0番目から始まって3番目の要素を取り出すということでげす。
面白いでしょ。
もちろん指定の場所から最後までや、最初の要素から指定の場所なんてことも
イージーです。

ちなみに[2:11]と[0:4]と書くことと同じです。

・ポイント

スライスを使うとリストの一部を切り出せる。


■並び替え

リストは保持している要素を並び替えることもできます。
大小とかアルファベット順とか…
それにはsortメソッド、reverseメソッドを使います。

小さい順になりましたね!
reverseメソッドはさっきと違って逆になります。

まさにリバース!
ちなみにもう一度reverseメソッドを呼ぶと元の小さい順になります。
次は文字列で例を出してみます。

ちゃんとアルファベット順になりました。
BeOSとはw
ちなみにsortメソッドは大文字が小文字より先になるルールです。

・ポイント

sortでリストの並び替えができる。
reverseはリストの並び順をひっくり返すときだけ。


■空っぽのリスト

空のリストは[]です。

なにか挿入してみましょう。

・ポイント

空のリストは[]で作る


■まとめ

リスト型はこんな感じですが、結構馴染めやすいと思います。
メソッドは他にもありますが、他の参考書見ないと分からんですね。
いやドキュメント読もう!次回は辞書型!

参考
Pythonスタートブック

Pocket

カテゴリー: Python

adachin

1989年生まれのSRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWS/Azureでのインフラ構築、Docker開発環境の提供、Kubernetes保守、インフラコード化、新技術の検証、リファクタリング、セキュリティ強化などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTAで未経験者にインフラのコーチング/コミュニティの運用を実施している。また、「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください