[Tutor] How to determine if every character in one string is in another string?

Kent Johnson kent37 at tds.net
Sat Jul 21 06:04:58 CEST 2007


Terry Carroll wrote:
> Is there a straightforward way to find out if all characters in one string 
> are present in a second string?
> 
> Basically, I have a string s, and I want to print it out only if every
> character in it is printable (because I accidentally brought my PC loudly
> to its knees printing a few thousand BEL characters when trying to debug
> something).  A workable test for me is whether every character in the
> string to be printed is in string.printable.
> 
> Right now I'm doing:
> 
> def printable(s):
>     import string
>     return [x for x in s if x not in string.printable] == []

My first thought is to use sets (not tested):

_printable = set(string.printable)
def printable(s):
   return set(s).issubset(printable)

Using string.translate() might be very fast. Something like

all_chars = ''.join(chr(i) for i in range(255))
def printable(s):
   return not s.translate(all_chars, string.printable)

Kent


More information about the Tutor mailing list