Pythonのインタラクティブシェルで、リスト内の日本語をそのまま表示する
Pythonのインタラクティブシェルはとても便利なんですが、リストやタプルなどのシーケンスの要素が日本語の場合、そのまま表示できません。
>>> lst = [u'あ', u'い', u'う', u'え', u'お'] >>> lst [u'\u3042', u'\u3044', u'\u3046', u'\u3048', u'\u304a']
これを日本語で表示するには、通常for文を用いて各要素をprintします。
>>> for i in lst: ... print i, ... あ い う え お
ここで、次のような書き方をすると、for文を使わなくてもリスト内の日本語が表示できます。
>>> print str(lst).decode("unicode-escape") [u'あ', u'い', u'う', u'え', u'お']
str()をrepr()にしても動作します。
ただし、日本語はユニコード文字列でないと表示できません。
>>> list = ["あ", "い", "う", "え", "お"] >>> list ['\xe3\x81\x82', '\xe3\x81\x84', '\xe3\x81\x86', '\xe3\x81\x88', '\xe3\x81\x8a'] >>> print str(list).decode("unicode-escape") ['あ', 'い', 'う', 'え', 'お']
これで各要素をユニコード文字列に変換したら手間だしなぁ、他に方法はないのかな。