我想知道是否有更优雅的方法来检查字符串(str ='abcccbbaabcbca')是否仅包含'a','b'或'c'而不是迭代它:
for i in str:
if i in ['a','b','c']:
pass
else :
print('wrong character')
Run Code Online (Sandbox Code Playgroud)
将两个字符串转换为集合并检查它们是否相等.如果是,则您的字符串包含aAND bAND c:
valid = set(your_string) == set('abc')...
Run Code Online (Sandbox Code Playgroud)
使用issubset以检查是否含有A,B,C的:
valid = set(your_string) <= set('abc')
Run Code Online (Sandbox Code Playgroud)
要么
valid = set(your_string).issubset('abc')
Run Code Online (Sandbox Code Playgroud)
减去集合以找出无效字符:
bad_chars = set('abcXYcba') - set('abc') # set(X,Y)
Run Code Online (Sandbox Code Playgroud)
使用正则表达式:
import re
if re.search('[^abc]', string):
print('wrong character')
Run Code Online (Sandbox Code Playgroud)
您可以使用any生成器表达式:
if any(c not in 'abc' for c in _str): # Don't use str as a name.
print('Wrong character')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4102 次 |
| 最近记录: |