I'm wondering if there is more elegant way to check if the string (str = 'abcccbbaabcbca') contains only 'a','b' or 'c' than iterating over it :
for i in str:
if i in ['a','b','c']:
pass
else :
print('wrong character')
You could use any
with a generator expression:
if any(c not in 'abc' for c in _str): # Don't use str as a name.
print('Wrong character')
Convert both strings to sets and check if they are equal. If yes, your string contains a
AND b
AND c
:
valid = set(your_string) == set('abc')...
Use issubset
to check if it contains ANY of a, b, c:
valid = set(your_string) <= set('abc')
or
valid = set(your_string).issubset('abc')
Subtract the sets to find out invalid characters:
bad_chars = set('abcXYcba') - set('abc') # set(X,Y)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With