Pythonにはintern()という組み込み関数がある。結構特別扱いで重要な組み込み関数なのだが、使い道が今ひとつ分かりにくいのか知らない人も多いようだ。 intern <捕虜・危険人物などを>(一定の区域内に)拘禁する, 抑留する. [新英和(第7版)・和英(第5版)中辞典 株式会社研究社] なんだか物騒な関数だが、同じような機能を持つLisp族の関数から名前を拝借したのだろう。intern()をPythonスクリプトで書くと、だいたいこんな感じの処理になる。 _intern_map = {} def intern(s): if s in _intern_map: return _intern_map[s] else: _intern_map[s] = s s.interned = True return s 文字列sと同じ文字列が専用の辞書_intern_mapに登録済みなら登録済み