いっぽんの猟銃のむこうに (DAIZOじいさんとGun)

ヌルめの技術メモとか。フリーランスやってます (http://acez.jp/)

Pythonで文字列が16進数かどうかを判別する

普通にやるなら

def _is_hex(val):
    try:
        int(val, 16)
        return True
    except ValueError, e:
        return False

とか書くんですけど、まあ冗長っていえば冗長ですよね。

どうしても、なんとなく例外処理とか書きたくない場合は、

a = 'FF00FF'
import string
set(a).issubset(set(string.hexdigits))
-> True

という荒業もあります。

まあ、素直にreモジュールで正規表現使った方が早いかもしれませんけどね・・・