〜複合データ型〜TweetPocketはじめに前々回に少しデータ型の話をしましたが、今回は、前々回で説明した「integer」「float」「string」「boolean」の基本データ型を組み合わせて格納することができるデータ型である「複合データ型」の説明をしたいと思います。リストまず複合データ型として「リスト」について説明します。並びを角括弧で囲むことで作成できます。前回の記事で説明した文字列の場合と同様、インデックス表記によって要素を取り出すこともできます。>>>weekdays[0]'Monday'>>>weekdays[4]'Friday'なお、文字列の場合とは異なり、リストはmutable(変更可能)なので、インデックス表記により書き換えることもできます。'tanaka'>>>members['sato','tanaka','takahashi']リストに要素を追加するにはappend()を利用します。>>>members.append('kimura')>>>members['sato','tanaka','takahashi','kimura']リスト同士を結合する場合は、extend()もしくは「+=」を利用します。others>>>members['sato','suzuki','takahashi','tanaka','chimera','ando']リストから要素を削除するにはremove()を利用します。['sato','suzuki','takahashi']#suzukiを削除する>>>members.remove('suzuki')>>>members['sato','takahashi']タプルリストに似た複合データ型としてPythonには「タプル」があります。リストと異なるのはimmutable(変更不可)という点です。リストの場合は実行できた「追加」や「削除」をタプルでは実行することはできません。「タプル」は定数リストのようなものだといえます。並びを丸括弧で囲むことで作成できます。※正確には丸括弧で囲む必要はありませんが、丸括弧で囲んだほうがタプルだとわかりやすいので本記事では丸括弧で囲むと説明しています。辞書とは、任意のオブジェクトをキーとして別のオブジェクトに対応づける複合データ型のことです。リストと同様に複数の値を格納することができますが、それぞれの値に対して任意のキーを対応づけることができます。Rubyでいうところのハッシュ、Javaでいうマップ、PHPでいう連想配列に相当するものです。辞書は、key:valueのペアをカンマで区切り、それぞれのペアをコンマ区切りで並べ、波括弧で囲むことで作成できます。}リストはインデックス表記によって要素を取り出すことができましたが、辞書ではキーを使って要素を取り出すことができます。>>>members['tanaka']'kenta'ただし、指定したキーが存在しない場合、エラーが発生します。'sato'エラーを回避するには、get()を使用すると良いです。getは引数としてキーとオプションを指定することができ、キーが存在しない場合はオプションで指定した値が返されます。オプションを指定しなかった場合はNoneになります。found'>>>members.get('sato')続いて、辞書のすべてのキーを取得するにはkeys()を利用します。辞書のすべての値を取得するにはvalues()を利用します。すべてのキーと値を取得するにはitems()を利用します。'takuya')])ちなみにPython3の場合、keys()、values(),items()の返り値はdict_keys(),dict_values(),dict_items()オブジェクトになるので、Python2の時のように、それらをリストに変換するには、list()を使用する必要があります。'takuya')]辞書はmutable(変更可能)なので、キーを利用して値を書き換えたり、値を追加することができます。辞書に指定したキーが既にある場合は、既存の値を新しい値に書き換え、辞書に指定したキーがない場合は、キーと値の両方を辞書に追加されます。'daisuke'}辞書同士を結合する場合は、update()を利用します。'haruka'}辞書から要素を削除するにはdelを使用します。'takuya'}すべての要素を削除するにはclear()を使用します。}>>>members.clear()>>>members{}今回は以上です。プログラミングSNSでもご購読できます。TwitterでフォローするFeedlyでフォローするSTM当ブログの管理人STMです。プログラミング関係の記事を中心に、趣味のカメラやファッションの話など掲載しています。読者の皆様のお役に立てる情報配信を心がけています。*メールアドレス(公開はされません。*上に表示された文字を入力してください。