enumerate関数(Python)

前回のエントリーでは複数のリストを辞書として登録するzip関数の使い方を学びました。今回はfor ループでリストのインデックスを扱う、enumerate関数の使い方をめも。

Titles =[
       "Bittersweet - Radio Edit",
        "Anchor",
        "Get There",
        "Set Me Free",
        "Untouchable",
]
Artists = [
        "Dyro",
        "Tritonal",
        "Paris Blohm",
        "Dyro",
        "Tritonal",
]

例えば、タイトルとアーティストの2つのリストをインデックス変数を含めて処理したいときに、for ループの変数に< , > を付けて併記したいとします。ループで取り出した要素がリストの何番目かをPythonが自動的にインデックス値として用意してくれるのがenumerate関数というわけですね。

for i, (Titles, Artists) in enumerate(zip(Titles, Artists)):
    print(i, Titles,"/", Artists)

前回の応用でenumerate関数の引数に2つのリストをzip関数でまとめて渡せばOK。インデックスと2つのリストの処理をいろいろやってくれるスゴイやつです。良いですね。

0 Bittersweet - Radio Edit / Dyro
1 Anchor / Tritonal
2 Get There / Paris Blohm
3 Set Me Free / Dyro
4 Untouchable / Tritonal

zip関数(Python)

Python で順序と数の一致した2つのリストをキーとバリューとする1対の辞書を作りたいときに便利なzip関数の使い方を検索したのでメモ。

Pythonで辞書の初期値をまとめて登録する方法 | Nana-Korobi

zip_function.py

Titles = [
        "Kuaga(Lost Time)(Radio Edit)",
        "Hands",
        "Dreams Lost Kings Remix",
        "We The Fire",
        "NANIMONO(feat.米津玄師)",
        "DREAM ILLUMINATION",
]
Artists = [
        "Pierce Fultion",
        "Gareth Emery",
        "Life of Dillon",
        "赤西仁",
        "中田ヤスタカ",
        "CTS",
]

music = dict(zip(Titles, Artists))
for title in music.items():
    print(title)

新しい空の辞書music をdict で定義するときに引数に2つのリストをzip関数にまとめて渡すとキーとバリューをまとめて登録できるという優れもの。良いですね。

('Kuaga(Lost Time)(Radio Edit)', 'Pierce Fultion')
('Hands', 'Gareth Emery')
('Dreams Lost Kings Remix', 'Life of Dillon')
('We The Fire', '赤西仁')
('NANIMONO(feat.米津玄師)', '中田ヤスタカ')
('DREAM ILLUMINATION', 'CTS')

 

通信障害とドメイン変更

先月から504(Gateway Time Out)エラーを出していた当サーバーの通信障害の原因が判明したのでお知らせします。

DDNS(ダイナミックDNS)にIPアドレスを通知するデーモンDice がビジー(CPU使用率100%)でネットワークが落ちていたようです。ローカルではレスポンスを確認。

top からDiceデーモンのプロセスをkill 、再起動したところ外部から接続できるようになりました。

今までご迷惑をおかけして申し訳ありませんでした。お詫び申し上げます。

またこれを機会にDDNSのホストをieServer からMyDNS へと変更しましたので宜しくお願い申し上げます。アドレスは、https://stuffy.mydns.jp です。