'$' in s # found
'$' not in s # not found
# original answer given, but less Pythonic than the above...
s.find('$')==-1 # not found
s.find('$')!=-1 # found
其他角色也是如此。 或者
pattern = re.compile(r'\d\$,')
if pattern.findall(s):
print('Found')
else
print('Not found')
或者
chars = set('0123456789$,')
if any((c in chars) for c in s):
print('Found')
else:
print('Not Found')
# When looking for single characters, this checks for any of the characters...
# ...since strings are collections of characters
any(i in '<string>' for i in '123')
# any(i in 'a' for i in '123') -> False
# any(i in 'b3' for i in '123') -> True
# And when looking for subsrings
any(i in '<string>' for i in ('11','22','33'))
# any(i in 'hello' for i in ('18','36','613')) -> False
# any(i in '613 mitzvahs' for i in ('18','36','613')) ->True
# Tested in Python 2.7.14
import timeit
from string import ascii_letters
from random import choice
def create_random_string(length=1000):
random_list = [choice(ascii_letters) for x in range(length)]
return ''.join(random_list)
def function_using_any(phrase):
return any(i in 'LD' for i in phrase)
def function_using_if_then(phrase):
if ('L' in phrase) or ('D' in phrase):
return True
else:
return False
if __name__ == '__main__':
random_string = create_random_string(length=2000)
func1_time = timeit.timeit(stmt="function_using_any(random_string)",
setup="from __main__ import function_using_any, random_string",
number=200000)
func2_time = timeit.timeit(stmt="function_using_if_then(random_string)",
setup="from __main__ import function_using_if_then, random_string",
number=200000)
print('Time for function using any: {0}\nTime for function using if-then: {1}'.format(func1_time, func2_time))
输出:
Time for function using any: 0.1342546
Time for function using if-then: 0.0201827
aString = """The criminals stole $1,000,000 in jewels."""
#
if any(list(map(lambda char: char in aString, '0123456789,$')))
print(True) # Do something.
s=input("Enter any character:")
if s.isalnum():
print("Alpha Numeric Character")
if s.isalpha():
print("Alphabet character")
if s.islower():
print("Lower case alphabet character")
else:
print("Upper case alphabet character")
else:
print("it is a digit")
elif s.isspace():
print("It is space character")
9条答案
按热度按时间x4shl7ld1#
假设你的字符串是
s
:其他角色也是如此。
或者
或者
[Edit:添加了
'$' in s
答案]9jyewag02#
用户JochenRitzel在对用户dappawit的回答的评论中说了这句话。它应该工作:
“1”、“2”等应替换为您正在查找的字符。
有关字符串的一些信息,请参阅Python 2.7文档中的此页面,包括使用
in
运算符进行子字符串测试。**更新:**这与我上面的建议相同,重复性更少:
eaf3rand3#
快速比较响应Abbafei帖子的时间:
输出:
因此,使用any的代码更紧凑,但使用条件的代码更快。
**编辑:**TL;DR-对于长字符串,if-then * 仍然 * 比任何一个都快!
我决定根据评论中提出的一些有效观点来比较长随机字符串的时间:
输出:
如果-那么几乎是一个数量级快于任何!
xzv2uavs4#
这将测试字符串是否由某些组合或数字、美元符号和逗号组成。这就是你要找的吗
qcbq4gxm5#
我的简单,简单,简单的方法!=D
编码
输出
qco9c6ql6#
检查字符串中是否有字符:
例如:
或
输出:
[True, True, False]
s4chpxco7#
另一种方法,也许是pythonic,是这样的:
pjngdqdw8#
将字母数字、空格、连字符和句号替换为空格,然后计算剩余字符数:
结果是:
然后你可以扩展正则表达式,例如,如果你想包括引号或问号作为普通字符。
2fjabf4q9#
否则:
print(“非空格特殊字符”)