まとまりのないブログ

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

Delphi デバッグで実行してもウインドウが表示されない場合の対処法

デバッグで実行してみても、起動せずにウインドウが表示されない場合の対処法。 直接デバッグフォルダのexeファイルを実行してみる dllやコンポーネントを追加とか削除したりした場合に、デバッグを実行!と …

no image

E: https://packages.cloud.google.com/apt/dists/kubernetes-xenial/main/binary-armhf/by-hash/SHA256/f840280436b5a28e352a584ead923e2554ddb4156b458f1205534af1f9db56d9 の取得に失敗しまし た

raspberry pi3にkubernetesを公式の通りにインストールしようとしたら下記エラーが出た。 E: https://packages.cloud.google.com/apt/dists …

no image

Yahoo!オークションに落札相場を検索する機能が登場

Yahoo!オークションに落札相場を検索するための機能が新たに追加された模様。オークションの出品マスターというYahoo!オークションの独自のシステムにおける特典の一部として提供され、条件をクリアして …

no image

windows 7 service pack 1の更新プログラムを確認していますが終わらない

windows7 pro 32bitを新規インストールしてからwindows update をかけると、更新プログラムを確認しています・・・とゲージが現れて何時間経っても終わらない問題。 解決方法は、 …

no image

Internet Explorer11がやたら重くなった

マザーボードのcmosクリアとかセッティング初期化とか色々やっていたらInternet Explorer11(以下ie)がやたら重くなった。重くなったというか、HDDアクセスランプが点きっぱなしで一時 …