Writing a string.ishex function

Arnaud Delobelle arnodel at googlemail.com
Thu Jan 14 21:29:37 CET 2010


MRAB <python at mrabarnett.plus.com> writes:

> Arnaud Delobelle wrote:
>> "D'Arcy J.M. Cain" <darcy at druid.net> writes:
>>
>>> On Thu, 14 Jan 2010 09:07:47 -0800
>>> Chris Rebert <clp2 at rebertia.com> wrote:
>>>> Even more succinctly:
>>>>
>>>> def ishex(s):
>>>>     return all(c in string.hexdigits for c in s)
>>> I'll see your two-liner and raise you.  :-)
>>>
>>> ishex = lambda s: all(c in string.hexdigits for c in s)
>>
>> I'see your one-liner and raise you by four characters :o)
>>
>> ishex1 = lambda s: all(c in string.hexdigits for c in s) # Yours
>> ishex2 = lambda s: not(set(s)-set(string.hexdigits))     # Mine
>>
> I raise you one character:
>
> ishex2 = lambda s: not(set(s)-set(string.hexdigits))     # Yours
> ishex3 = lambda s: not set(s)-set(string.hexdigits)      # Mine

Aha! The Operator Precedence trick! I fold.

> I could actually go three better:
>
> ishex3=lambda s:not set(s)-set(string.hexdigits)

In this case, I'll go five better:

h=lambda s:not set(s)-set(string.hexdigits)

;-)

-- 
Arnaud



More information about the Python-list mailing list