めちゃくちゃ使う!リストやディクショナリ
はじめに
前回は変数の扱い方のあれこれについて書いていきました。
さて、今回はリスト(配列)やディクショナリについて説明します。
リスト…これ本当によく使う。
それに、今後リストの拡張版みたいなのも沢山出てきます。
気になる人はNumpyやPandasなどを調べてみて、こいつらも使いこなすとめっちゃ便利(らしい?)。
リスト(配列)について
とりあえず定義してみる
早速だけど、配列をつくる。
a = [1, 10, 100, 1000, "abc"] print(a)
まぁこれを実行すると
[1, 10, 100, 1000, 'abc']
と出力されます。簡単ですね。
まず、変数とは違って[ ]で囲って定義します。
そうすると、aという仕切りがある箱ができて、その一つ一つの部屋の中に数値を入れていきます。
例のように、"で囲ったらstr型(文字列)として箱の中に格納されます。
"がないと、
「abcなんて変数聞いてないよ!!」
と怒られるので注意!
どうやって取り出す?
fruits = ["イチゴ", "バナナ", "モモ", "メロン", "ブドウ" ] print(fruits)
ここに、フルーツを入れた箱を作りました。 選んだフルーツの順番とか色とかに大きな意味はないです。
この箱の中から「メロンを取り出したい!!」 そんなときは
fruits = ["イチゴ", "バナナ", "モモ", "メロン", "ブドウ" ] meron = fruits[3] print(meron)
というように、リストに[]をつけて、その中に0から始めた通し番号を入れることで取り出すことができる。
逆に、「いや、3番の部屋に別のもの入れたいわ」
となったときは
fruits[3] = "キウイフルーツ" print(fruits)
という風に直接入れてあげます。 そうすると
['イチゴ', 'バナナ', 'モモ', 'キウイフルーツ', 'ブドウ']
となる。メロンはpythonが食べちゃうのでなくなります。
リストの操作いろいろ
何となくリストのイメージがついたところで、どんどん使い方を流していきます。なんでも実行するに限る!!
準備として
b = [1, 2, 3, 10, 20, 30, 100, 200, 300] print(b)
より、
[1, 2, 3, 10, 20, 30, 100, 200, 300]
を得る。
- リストの長さを知りたい
len(b)
⇒ 9 - 0から3つ分の数が欲しい
c = b[0:3]
⇒ [1, 2, 3]
注)ここではb[0], b[1], b[2]しか取り出されない、つまりb[3]は含まれない。 - ある番号から最後まで
d = b[2:] ⇒ [3, 10, 20, 30, 100, 200, 300] - 最初からある番号まで e = b[:7] ⇒ [1, 2, 3, 10, 20, 30, 100]
- 最初から最後の要素の一つ前 f = b[:-1] ⇒ [1, 2, 3, 10, 20, 30, 100, 200]
あきた…
ちなみに、しれっと一番最後の-1ってやつ面白いね。
(今のところ使えそうな場面がない…)
当然、こんなこともできます
* 要素同士の計算
g = b[0] + b[1]
⇒ 3
リストのリスト(2次元配列)
リストは下のようにの入れ子にすると、2次元配列が作れます。
これも他の言語と似てますね。
table = [[10, 12, 13], [21, 19, 22], [15, 24, 17]]
ちなみに、もう一つを追加すれば3次元もできるよ。
画像処理のときに使うかもしれないね、(縦, 横, カラー)みたいな感じで。
この2次元配列の要素へのアクセスは
table[1][2] (2行3列目)
⇒ 22
というようにできます。
行にアクセスするには
table[2]
⇒ [15, 24, 17]
というようにできます。
自分の感覚からすると、2次元配列は今後出てくるであろうnumpyやpandasを使う事があるかもしれない。 けど、使い方のイメージは似ているので怖がることなく…
ディクショナリ
次に、リストと似てるけど、便利?なディクショナリの説明です。 とりあえず、一連の使い方はこんな感じ。
azarashi = {"名前": "ゴマ", "身長": 120, "体重": 100, "エサ": "アジ"} print(azarashi) print("名前は " + str(azarashi["名前"])) # => 名前は ゴマ print("体重は " + str(azarashi["体重"]) + "kg") # => 体重は 100 azarashi["車"] = "ポルシェ" print("好きな車は " + azarashi["車"]) # => 好きな車は ポルシェ
7行目のように、後から足すことだってできます。
ディクショナリは、"名前"というキーと中身を紐付けすることで、中身を取り出すことができます。
リストと違って便利なところは、定義の順番を気にしなくていいということですね。
長くなりましたが今回はこんなとこで。