まとまりのないブログ

something which something is something

Tips

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

投稿日:2020年10月13日 更新日:

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

-Tips

執筆者:


comment

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

no image

シンプルな家計簿(仮)のデザインミス

現在のシンプルな家計簿(仮)の入力画面のレイアウトは画像のような並びになっている。並び順は上から 日付,費目,内訳,口座,備考,金額 の順に。 今考えみるとこの画像のような並び順にすべきだった。備考と …

no image

Redisに登録したデータが消える

消える。とにかく消える。expireを設定しておいてもその期限前に消える。マシンのメモリの上限に達しているわけではなさそうなのだが、ある程度登録データが溜まってきたらごっそり消える。なんでだ。noev …

no image

パソコンがフリーズする要因

パソコンがフリーズする要因は以下が考えられる。 主記憶(メモリ)に不具合がある場合 補助記憶(HDD、SSDなど)に不具合がある場合 OS・ソフトウェアに不具合がある場合

no image

チェックボックスのチェックの有無を確認する

チェックボックスがチェックされているかいないかをチェック。 サンプルコード <script type=”text/javascript”> function check_ischecked …

no image

reportviewer はデータソースが複数あるとわけがわからない状態になる

visual studioのreportviewer コントロールの設定で嵌ってしまったので備忘。reportviwerコントロールをフォーム上に配置したらレポートの設定をするためにrdlcという拡張 …