Check if a string contains only given characters

前端 未结 5 1487
北恋
北恋 2020-12-15 13:51

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         


        
5条回答
  •  Happy的楠姐
    2020-12-15 14:32

    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)
    

提交回复
热议问题