ゆずまの○○日記がシンプルでいいと思います!

プログラミングを中心に書いていこうと思ってます。

03_タプルを使う

  • タプルは、リストにとてもよく似た性質をもっている。
  • タプルは、要素を変更できないシーケンス
    • 複数の要素をもつことができる
    • インデックスを使って要素にアクセスできる。
    • 要素の変更ができない。
  • タプルの定義方法
    • (要素, 要素, …)
  • タプルから要素を取り出す
    • タプル名[インデックス]
  • タプルは要素を変更することができない
    • TypeError: ‘tuple’ object does not support item assignment が発生する
    • タプルは、要素を削除することができない。(変更されることになる)
  • タプル同士を連結することができる
  • タプルもリストと同じように、len(),in演算子,スライスを使える。
  • 要素が1つだけのタプルを定義するには、少しコツが必要。
    • 「(10,)」のように、要素の後にカンマを補う必要がある。
  • タプルの利点
    • ディクショナリのキーや、setの要素にすることができる。

補足

  • 2点間の距離の求め方
    • 緯度と経度の差を二乗して足す
# coding: utf-8

# In[1]:

### タプルの定義
month_names = ('January', 'February', 'March', 'April', 'May', 'June', 'July')

month_names


# In[2]:

### タプルから要素を取り出す
month_names[1]


# In[3]:

### タプルの要素を変更する
month_names[0] = '睦月'


# In[4]:

### タプル同士の連結 ###
month_names2 = month_names + ('August', 'September', 'October', 'November', 'December')

month_names2[11]


# In[5]:

### タプルをキーとしたディクショなりの作成
pref_capitals = {(43.06417, 141.34694):"北海道(札幌)",
                             (40.82444, 140.74): "青森県(青森市)",
                             (39.70361, 141.1525):"岩手県(盛岡市)"}
pref_capitals


# In[11]:

### 指定した緯度、経度に合致する県庁所在地を調べる
loc = (39.70361, 141.1525)
for key in pref_capitals:
    if loc == key:
        print(pref_capitals[key])
        break


# In[19]:

### 指定した緯度、経度に最も近い県庁所在地を調べる
# 調べたい地点の緯度、経度
loc = (41.768793, 140.72881)

# 最寄りの県庁所在地を保存する変数
nearest_cap = ''

# 最寄りの地点までの距離を保存する変数
nearest_dist = 10000

# keyでループする
for key in pref_capitals:
    dist = (loc[0]-key[0])**2+(loc[1]-key[1])**2
    print(key, pref_capitals[key])
    if nearest_dist > dist:
        # より近い地点が見つかったので、入れ替える。
        nearest_dist = dist
        nearest_cap = pref_capitals[key]

print(nearest_cap)


# In[22]:

aaa = (555,333,333)
aaa


# In[ ]: