配列のたぐい¶Pythonには、「配列」に相当する型が複数あります(配列という名前の型は無いのですが、便宜上複数データを格納する型を「配列型」と呼ぶことにします)。Pythonでは配列要素はa[n]のように表され、ここでnは原則0からN-1(Nが配列の長さ)の整数を表します。配列要素のインデックスが0から始まることに注意しましょう。ここに挙げる配列型のすべてにおいて、配列要素数を得るlen関数を用いることができます。](スクエアブラケット)で囲われていることで特徴づけられます。listの要素の型は統一されている必要はなく、数、論理型、果てはlistやtupleまで、あらゆる型のものを要素として取ることができます。3]1listの代表的な操作として、appendメソッドとpopメソッドを紹介します。メソッドとはある型の変数(オブジェクトといいます)に固有の関数で、[オブジェクト名].[メソッド名]([引数])のかたちで用いられます。appendはlistの最後に[引数]を付け足すメソッド、popは[引数]番目の要素を取り消すメソッドです。3.14]listのその他の操作はこちらに詳しいです。)(丸カッコ)で囲われていることで特徴づけられます。listとtupleの最大の違いは、listでは要素の書き換えが行えるのに対して、tupleはそれを許さないということです。"(ダブルクォーテーション)によって生成されます。インデックスによって「何文字目」かを表現するというように、配列的な操作が行われます。"abc"print(my_str)print(my_str[0])abcastrどうしの結合はconcentrationと呼ばれ、+(足し算)で行うことができます。strは0からN-1(Nは要素数)の整数でインデクシングが行われています(要素に順序がある)。これらの型ではFortranなどと同様に部分配列を得る操作が行えます(スライスと呼ばれます)。スライスの文法は、a[start:stop:step]のようになっています。ここでstartは部分配列の始まりのインデックスで、省略するとaの始まり(0)となります。stopは部分配列の終わりのインデックスで、省略するとaの終わりとなります。注意すべきなのは、a[stop]の要素自体はスライスされた部分配列に含まれないということです。stepはスライスする要素の間隔を指示し、省略すると(stepの前のコロンから省略できます)startとstopの間のすべての要素を抜き出します。strのインデックスは原則0からN-1(Nは要素数)の整数ですが、-Nから-1までの負の数をインデックスに用いることができます。a[-N]=a[0]を意味します。その他の配列型¶その他たまに使う配列型として、整数ではなく文字列でインデクシングを行うdictionaryや、要素の順序を区別せず、またダブった要素を同一視するsetなどが挙げられます。9}ユーザー定義型¶オブジェクト指向型言語であるPythonでは、ユーザーが新たな型(クラス)を定義する際に、そのデータ構造だけでなく演算規則(+,-,...)や多様なメソッドまでも定義することができます。自らクラスを定義して洗練されたコード運用を行うまでいかなくても、ライブラリを使用するときにユーザー定義型のお世話になることはよくあります。ndarrayオブジェクトが挙げられます。ndarrayはNumpyモジュールで定義されるユーザー定義型で、多次元配列(数を要素とする)を高速に扱うことができます(実際の運用においてデータ格納のためにlistやtupleを用いると、多くの場合遅くて使えたものではありません)。ndarrayの演算規則やメソッドの例を示します。27]45型変換¶Fortranなどの言語と同様に、[型の名前]([変換する変数])のようにして型の変換を行うことができます。お気軽にご連絡ください。