Pythonのへー、ふーん、ほおー

Pocket

はじめてリストの内包表記を見たときは、なんじゃこの呪文は?と思ったが、慣れてくるとなかなか便利。特に文字列のフォーマットと組み合わせたりするのは気持ちいい。

>>> tmpl = u"name: %s"
>>> strlist = ["mao", "deng", "zhang", "li"]
>>> [tmpl % elm for elm in strlist]
[u'name: mao', u'name: deng', u'name: zhang', u'name: li']

ただ、参考書によく書いてある「内包表記は簡潔で分かりやすい」には賛同できない。簡潔だけど分かりやすくはないかな。「簡潔で、慣れるとまあ読める」だと思う。

>>> [tmpl % elm for elm in strlist if len(elm) > 3]
[u'name: deng', u'name: zhang']

上のようにif文と組み合わせるとさらに強力だけど読みにくさもアップして、どういう順番で処理が進むのかとっても分かりにくい。まだ試す機会に恵まれていないが、リストを入れ子にすることもできるらしい(;´Д`) あー、でもTclの関数と見た目はよく似てるな。あんまり抵抗を感じないのはそのへんもあるのかも。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください