pythonの配列と配列に似たようなものについて

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["上川陽子"]

コメントを残す

メールアドレスが公開されることはありません。