Python3超入門【第3回】


さてPython3超入門シリーズも、【第3回】になりました。今回もわかりやすく説明するので、よろしくお願いします。

<関連リンク>

Python3超入門【第1回】

Python3超入門【第2回】

今回は、リストというデータの入れ物について学びます。

Python3入門

 

[広告]確かな力が身につくPython「超」入門 (確かな力が身につく「超」入門シリーズ)
当サイト神推しのPython入門書、このサイトと併用することで学習効果大幅UP間違いなし!早速Amazonでレビューを確認してみよう。

リスト-それは、順序付きのデータの集まり

リストは単なる変数とは異なり複数のデータを1つの変数で持つことができる構造です。と抽象的に説明してもわかりにくいですよね。具体例を見れば一発でわかります。下記のサンプルコードを見て下さい。

たったこれだけです。リストの内容は、削除したり書き換えたりすることができます。(,カンマ)で区切られた1つ1つのデータ(Pythonオブジェクト)は、「要素」と言います。またlist()関数を使うと空っぽのリストを作ることができます。こんな感じです。

それだけではありません。list()関数を使えば文字列をリスト化することもできます。

上記のコードをIDLEに入力した後に、pyと入力してみて下さい。

このような結果が返ってくるはずです。

[‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’, ‘3’]

また以前説明したsplit()関数を利用すれば、任意のセパッレータ(区切り文字)を利用して、リストを作ることができます。

例えば以下の文章を「、(句点)」で区切って(句点をセパレータとして)リストにしてみます。

 

「人間万事塞翁が馬とは、どんな嫌な出来事が、どんな幸いの、原因になるか、分からないという意味である。」

すると以下のような結果が返ってきます。ちゃんと句点で区切られたリストになっていますね。

[‘人間万事塞翁が馬とは’, ‘どんな嫌な出来事が’, ‘どんな幸いの’, ‘原因になるか’, ‘分からないという意味である。’]

 

しかし、いくらリストを作っても個々の要素を取り出せないようでは不便です。

リストからの個々の要素の取り出しは0から始まる数字で行います。最初の要素が0番目な点に注意しつつ、以下のサンプルコードを見て下さい。

実際にIDLEに入力して試してみて下さいね。

さて、慣れるまで少し複雑に感じるかもしれませんが、listはlistを要素に持つことができます。実際にサンプルコードを見た方が分かりやすいでしょう。

リストの中にリストを入れることは、ちょうど、リュックの中に小さいバックを入れることに似ています。

リュックの中には2つのバックが入っていて、それぞれのバックの中にも、いくつかのモノが入っているイメージです。

list_of_list[0]とすると、リュックに入れた一番最初のバックを指すことに似ています。実際にはリストの中のリストの最初の1個目のリストを指します。

またlist_of_list[0][0]とすることは、リュックに入れた最初のバックの中に入っている最初のモノを指し示すことに似ています。実際にはリストの中に入っているいくつかのリストのうち、一番最初のリストの中の一番最初の要素を指し示しています。

では、list_of_list[1][0]とすると何を指すでしょうか。これは二番目のリストの一番最初の要素を指しているので’ニンジン’が答えです。

この複雑なリストの入れ子構造に慣れる一番のコツは、実際に自分でリストのリストを作ってみて、いろいろと中身を指し示すコードを実際に書いてみることです。幸いPython3には、IDLEという強い味方がついているので気軽に自分で作ったリストのサンプルコードを試す練習ができます。

プログラミングがはじめての方は特に「頭」で理解しようとせずに「手」で理解しようとする癖をつけるようにするといいでしょう。

リストの要素の変更・追加・削除

リストの要素を変更することは簡単です。以下のサンプルコードのように行います。

ただ単純に変更したい要素の番号を指定して、値を上書きすればいいだけですね。

ところでPython3超入門【第2回】で説明した文字列のスライスを覚えているでしょうか。Python3独自の書き方なので、もしかしたら他のプログラミング言語を学習した方でも、すっかり忘れてしまっているかもしれません。

そこで文字列のスライスを復習しましょう。なぜならリストも文字列と同様にスライスできるからです。

文字列変数[スタート: エンド: ステップ]

という書式で文字列をステップごとにスライスできるんでしたね。

以下の注意点を思い出して下さい。

  • 文字列の先頭の文字は0番目。
  • 文字列のスタートとエンドを指定した場合、「スタート」から「エンドー1」文字目をスライスする。

試しにいくつかサンプルコードを見てみましょう。

 

ということで、このスライスを今度は、リストで試す方法を説明します。

これも日本語で説明するよりサンプルコードを見た方がわかりやすいです。下記サンプルをご覧下さいませ。

最後のlist[::-1]はちょっとトリッキーなコードですが、リストの順序を反転させることができるので便利です。

 

さて、リストを操作する関数もいくつか紹介しますね。もしかしたら、「もうリストは飽きた!」と思われるかもしれませんが、Python3でプログラミングをしていく上でリストは便利で強力な機能なのでもう少しお付き合い願えれば幸いです!

append()関数

このappend()関数の使い方は超簡単です。ただ単にリストの末尾に新たな値を追記するだけの関数です。

例によってサンプルコードでappend)の使い方を確認してみましょう!

最初の行では、うっかり一番重要な「白米」をすっかり忘れていました。白米がないと朝食になりませんね(笑)。そこでappend()関数を使って、リストの末尾に’白米’を追加しました。

 

extend()関数

extend()関数は2つのリストを合体して1つのリストにする関数です。これも使い方はとっても簡単です。サンプルコードで利用法を確認しましょう。

尚、書式は「list変数.extend(合体させたいlist変数)」です。

入試で消しゴムを忘れると超焦りますよね。ついでにサインペンも入れておきました。特に説明の必要はないかと思いますので、これでextend()関数は終わりにしたいと思います。

 

リストの要素を1個だけ削除したい

リストの要素を1つだけ削除するには、delを使います。別に難しくはありませんが文法がちょっと目新しいものなのでその点だけ注意して下さい。

書式

del list[削除したい要素の番号]

サンプルコードで確認します。

おっと、今回の試験科目に国語は入っていませんでした。うっかり、うっかり。そこでdelを使って2番目の要素である’国語’を削除しています。

Python3超入門【第3回】のおわりに

お疲れ様でした。Python3超入門【第3回】はこれで終わりにしたいと思います。第4回ではタプルという、これまたデータの入れ物について解説したいと思っています。

【広告】当サイトと併用することで学習効果倍増間違いなし!→Pythonスタートブック

 

ちなみに、実はリストについては、まだまだ解説したい関数がたくさんあるのですが、これはあくまで入門記事なので全部の関数を説明することは、あえてしませんでした。さらにリストについて学びたい場合は、Python公式ドキュメントのhttp://docs.python.jp/3/library/stdtypes.html#sequence-types-list-tuple-rangeの「4.6.3」を参照すると役立ちます。

 

[広告]確かな力が身につくPython「超」入門 (確かな力が身につく「超」入門シリーズ)
当サイト神推しのPython入門書、このサイトと併用することで学習効果大幅UP間違いなし!早速Amazonでレビューを確認してみよう。

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA