检查字符串是否只包含给定字符

2024-10-03 02:32:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有更优雅的方法来检查字符串(str='abcccbbaabccbca')是否只包含'a'、'b'或'c',而不是迭代它:

for i in str:
   if i in ['a','b','c']:
      pass
   else :
      print('wrong character')

Tags: 方法字符串inforifpasselseprint
3条回答

可以将^{}与生成器表达式一起使用:

if any(c not in 'abc' for c in _str):  # Don't use str as a name.
    print('Wrong character')

将两个字符串转换为集合并检查它们是否相等。如果是,则字符串包含ab和{}:

valid = set(your_string) == set('abc')...

使用issubset检查它是否包含a、b、c中的任何一个:

^{pr2}$

或者

valid = set(your_string).issubset('abc')

减去集合以找出无效字符:

bad_chars = set('abcXYcba') - set('abc') # set(X,Y)

使用正则表达式:

import re
if re.search('[^abc]', string):
    print('wrong character')

相关问题 更多 >