Python 変数・リスト・タプル・辞書

変数

変数の値を入れ替える

a = 1
b = 2
tmp = a
a = b
b = tmp

下記のように省略可能

a = 1
b = 2
a, b = b, a

リスト( 配列のようなもの )

リスト作成
# 値を入れてリストを作成
リスト名 = [値1, 値2, 値3] 
# 空のリストを作成
リスト名 = List() 
# 0~n未満の数値を要素にしてリスト生成
リスト名 = List(range(n)) 
# 文字列を分解して要素とする/ '文', '字', '列'
リスト名 = List('文字列') 

要素の取得
# リスト全体を取得
リスト名 
# リスト内から指定して取得
リスト名[インデックス番号] 

# リストの長さを取得
len(リスト名) 

split() 特定の文字で文字列を区切ってリスト作成

変数名 = "a bc def"
リスト名 = 変数名.split() 
# 'a', 'bc', 'def'の3つの要素があるリストとなる
  • 引数なしは空白区切りとなる

負の添え字

リストの要素を後ろから添え字の絶対値で指す

正の添え字 リスト[0] リスト[1] リスト[2]|リスト[3]
負の添え字 リスト[-4] リスト[-3] リスト[-2]|リスト[-1]

スライス

[先頭インデックス番号:終了インデックス番号]でリストの1部を取り出す * 終了インデックス番号の手前までとなる

リスト名 = [値0, 値1, 値2, 値3, 値4]
変数 = リスト名[1:4] # 値1, 値2, 値3を取得する

appendメソッド リストに要素を追加

# 値を追加
リスト名.append(値) 
# リスト1の要素の後ろにリスト2がリストとして要素に追加される
リスト1.append(リスト2) 

extendメソッド ( リストを統合 )

リスト1.extend(リスト2)
  • リスト1の後ろにリスト2の内容が追加される

リストの代入

リスト2 = リスト1
# 同じデータの所在を指しているためどちらかの要素を変更すると片方も変更される

リスト2 = リスト1.copy()
# コピーとなるためリスト1とリスト2は別々の独立したリストとなる

イミュータブル/ミュータブル

イミュータブル( 変更不能

  • 数値
  • 文字列
  • タプル
a = 1
b = a
b = 2
# a = 1, b = 2を指している

ミュータブル( 変更可能 )

  • リスト
  • 辞書
リスト1 = [1,2,3]
リスト2 = a
リスト2 = [9,8,7]
# リスト1 = [9,8,7] リスト2 = [9,8,7]
  • リスト2を変更するとリスト1も変更される

タプル

リスト同様に複数の要素からなるデータ

変数 = 1,2 
# 変数 = (1,2)でもOK

# リスト同様、添え字で要素を取得
変数[0] # 1

左辺が要素の個数と同じ場合、それぞれに代入される

変数1, 変数2 = 値1,値2
# 変数1 = 値1, 変数2 = 値2

イミュータブルのため後から要素に代入できない

変数 = 値1,値2
変数[0] = 値3
# エラーになる

辞書

キーと値で管理

# 辞書を生成
変数名 = {キー1:値1, キー2:値2,...}
# 指定したキーの値を取得
変数名[キー] 

# 新たにキーと値を追加
変数名[新キー名] = 値

キーの存在確認

キー名 in 変数名 # trueかfalse
形式 記述方法 要素取得
リスト リスト名 = [値1, 値2, ...] リスト名[インデックス番号]|ミュータブル
タプル タプル名 = (値1, 値2,...) タプル名[インデックス番号]|イミュータブル
辞書 辞書名 = { キー1:値1, キー2:値2,... } ミュータブル