pythonの配列
配列の宣言
list = []
pythonでは配列のことを主にリストと呼ぶ。
配列の要素への代入
list = [0,1,2,3,4]
配列の要素へのアクセス
print(list[0])
配列のループでの処理
for item in list:
print(item)
pythonの配列に似たもの1:tuple(タプル)
タプルの宣言
list = ()
配列との違いはその要素を変更できないという点。(immutable)
タプルの要素への代入
list = (0,1,2,3,4,’zero’,’one’,’two’)
タプルの要素へのアクセス
print(list(0))
タプルのループでの処理
for item in list:
print(item)
pythonの配列に似たもの2:dict(辞書)
dictの宣言
dict = {}
辞書型のオブジェクトでキーと値の関係で要素を代入するので別言語のハッシュテーブル・連想配列のような印象。配列との使い所の違いとしてはキーがあらかじめわかっていて要素への高速なアクセスをするときなどに便利かと。場合によってはループ処理で順次値を処理するということもできる。
dictの要素への代入
dict = {‘key1′:1,’key2′:2,’key3’:3}
dictの要素へのアクセス
print(dict(‘key1’))
dictのループでの処理
for item in dict.iteritems()
print(item)
まとめ
- 配列
- l = []
- タプル
- t = ()
- 辞書
- d = {}
余談
上記の辞書型オブジェクトのdictについて。私自身は別の言語も学習したことがあったのでハッシュテーブルというものの存在は知っていたが、pythonのこのdictについてはなにかと有用な印象を今更ながら感じた。dictは配列のようなものでキーと値というセットで格納することができるが、pythonはオブジェクト指向言語でもあるのでクラスを作成するということもでき、クラスのオブジェクト(インスタンスともいう)をキーとセットでdictに保存するということもできる。これって多重配列をずっと扱いやすくしたようなものだと思う。今までなぜあまり使ってこなかったのかと不思議なくらいだが、クラスとハッシュテーブルは相性がいいのかもしれない。(使う必要性がなければ使わないくていいのだけれども)単にキーと値というペアで存在するデータの集まりと考えたらDBで代用できるしあまりありがたみがないが、クラスから生成したオブジェクトを管理するツールとしてみれば抜群に使い勝手が良い。例を挙げてみる。(コードは適当)
class Person: def __init__(self,name,role): self.name = name self.role = role self.active = True self.limit = 2024 def hello(self): print("hello!") naikaku = {} person = Person("菅義偉","総理") naikaku["菅義偉"] = person person = Person("麻生太郎","副総理") naikaku["麻生太郎"] = person person = Person("武田良太","総務大臣") naikaku["武田良太"] = person person = Person("上川陽子","法務大臣") naikaku["上川陽子"] = person for active , person in self.naikaku.items(): if active == True: person.hello() for name , person in self.naikaku.items(): if name == "上川陽子" person.active = False if "上川陽子" in self.naikaku: del self.naikaku["上川陽子"]