もりもり過ぎです
本日、授業で出てきたキーワード的なものを並べてみたいと思います。
・リスト名.append( 値 )
・リスト名.insert( 値 )
・del リスト名[ index ]
・リスト名.remove( 値 )
・リストの代入
・list( リスト名 )でインスタンス生成
・copy( リスト名 )
・リストの連結
・スライス リスト名[ 開始値 : 停止値 : 間隔 ]
・スライスによる逆順処理 リスト名[ : :-1]
・reversed( リスト名 )
・リスト名.reverse()
・iter( リスト名 )
・next( イテレータ )
・zip( リスト名1, リスト名2 )
・emurate( リスト名 )
・アンパック
・リスト内包表記 [ 式 for 変数 in リスト名 if 条件 ]
・max( リスト名 )
・min( リスト名 )
・sum( リスト名 )
・sorted( リスト名, reverse=True/False )
・リスト名.sort( reverse=True/False )
・多次元リスト リスト名[ [ 値1, 値2, …], [ 値a, 値b, …], [ 値ア, 値イ, …] ]
計23個
覚えられません。
まず、数が多い。
そして、似たようなスペルで、似たような効果、でも使い方が違う処理がいっぱい。。。
硬化し始めた脳みそでは、なかなか咀嚼できないボリュームです。
このままだと受験生の丸暗記になりそうなので、
とりあえず、整理・分類してみましょう。
大分類
大きく分けて、以下に分けられるようです。
・「list」自体を操作するメソッド・関数
・コレクション「list」の特徴からくる機能・操作
まずは数の多いメソッド・関数に注目してみたいと思います。
リストの関数
最初に目につくのは「リスト名.xxx」という形式です。
調べてみると、これらはリスト固有の関数ということがわかりました。
リスト固有の関数は、「dir( list )」で確認できます。
上図の中で"__"のついていない、後半部分が固有関数(メソッド)です。
上述した、授業で出てきたもののほかにもいろいろあるようです。
各メソッド毎の処理内容はそれぞれのスペルからおおよそ推測できるとして、
以下の共通する特徴が見えます。
・基本書式:リスト名.メソッド名( 値 )
・listそのものに編集を行う
組み込み関数
続いて、「xxx( リスト名 )」という形式が目立ちます。
これらは組み込み関数といわれるシリーズのようです。
組み込み関数については、以下のサイトに一覧がありました。
docs.python.org
ここにも習っていないものがいくつもありますが、ぼちぼち覚えてゆくとして
以下の共通する特徴が見受けられます。
・基本書式:組み込み関数名( リスト名 )
・リストそのものは編集しない。別のオブジェクトやイテレータを返却する
いわゆる list の機能
「list( リスト名 )でインスタンス生成」「リストの代入」「多次元リスト」
このあたりは、JavaやCの配列、Javaの<List>と似てます。
めんどくさい部分ではありますが、個人的には受け入れやすい感じです。
python の list特有の機能
「リストの連結」「スライス」「アンパック」
このあたりは、pythonのリスト特有の機能と考えられます。
Javaなどと比べて、pythonの自由度が高いといわれる所以でしょう。
個人的には感覚をつかむのに少し苦労しそうです。
(逆に、これに慣れちゃうと、Javaとかでミスりそうで怖いです)
その他①
「del リスト名[ index ]」
こいつは上記まででは分類不能です。
調べてみると”pass”、”assert”、”return” と同類の、単純文といわれるものでした。
単純文とは
「単一の論理行内に収められる文」
とのことで、詳しくは以下に記載されています。
docs.python.org
その他②
「リスト内包表記」
こいつは、上記までの機能とは違い、条件分岐などを駆使した特殊記法といっていいでしょう。
個人的には読みにくいので、パスしたいところですが、
性能もよろしいとのことで、よく使われるとのことです。
ぼちぼち書いて慣れるしかないですね。
次回予告
さて、今回は復習もかねてちょっと真面目に整理してみました。
なかなかハードな状況になってきましたが、このペースでいかないと、
今月中に教科書『やさしいpython』は終わらない気がします。
あしたもこのペースを維持するのか?
それとも、復習回となるのか?
たのしみだなぁ。