rangeの文字版c_rangeを書いた(binasciiの使用例)
Python Learners!で教えて貰ったのですが、rubyだと"('!' .. '?').each{ |e| print e, ' ' }"で、"! \ " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?"を書きだすことができるんだとか。rubyは数字も文字の場合も扱えるのでPythonのrangeより賢いじゃないですか。とりあえず、Pythonでrangeの文字列版c_rangeを作ってみました。
#!/usr/bin/env python2.6 import binascii def c_range(begin, end): b_int = int(binascii.hexlify(begin), 16) e_int = int(binascii.hexlify(end), 16) for i in range(b_int, e_int+1): yield binascii.unhexlify(hex(i)[2:])
binasciiとかはじめて使いました。もっと賢い書き方があったら教えてください。