Writing a string.ishex function

MRAB python at mrabarnett.plus.com
Thu Jan 14 17:25:54 EST 2010


Arnaud Delobelle wrote:
> 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)
> 
> ;-)
> 
Touché!



More information about the Python-list mailing list